Techniques for Providing Alerts in a Time and Attendance System

ABSTRACT

Techniques for providing alerts in a system that implements an organizational management platform to manage applications for an organization are disclosed. The method can include accessing organizational data associated with the organization. A rule having a condition for activation of a trigger can be received from a user interface. A dependency map having data objects that are associated with the rule can be generated by the system. A change in a first data object from the data objects can be determined. Additionally, a dependency between the rule and the first data object can be determined based on the dependency map. Moreover, the condition for the activation of the trigger can be determined to be satisfied based on the determined change. Subsequently, an action associated with the activation of the trigger can be performed based on the condition for the activation of the trigger being satisfied.

FIELD

The present disclosure generally relates to computer systems anddatabases with real-time alert systems. More particularly, the presentdisclosure relates to providing trigger operations in an organizationalmanagement platform and performing actions in response to an activationof the trigger.

BACKGROUND

A database generally refers to a type of computer program that primarilystores and retrieves data. The database generally may execute proceduralinstructions from a database trigger in response to a certain eventinvolving a particular table or view within the database. However,database triggers generally are limited to operations performed onobjects within a database. As such, database triggers are unable tosupport various types of operations associated with maintaining anenterprise system of record integrated with applications (e.g., time andattendance application). Therefore, a need exists for providing triggersthat support operations associated with enterprise systems of recordintegrated with applications.

Additionally, due to the large scale of data stored in a database,conventional systems may not be able to determine in real-time thevalues of data objects. Conventional systems may not be able access datathat is changing in real-time and react to the changes dynamically.Therefore, a need exists for systems that store, access, and determinein real-time the values stored in a large database.

SUMMARY

Aspects and advantages of embodiments of the present disclosure will beset forth in part in the following description, or can be learned fromthe description, or can be learned through practice of the embodiments.

One example aspect of the present disclosure is directed to a computersystem that implements an organizational management platform to manageapplications for an organization. The computer system includes one ormore processors. The computer system includes one or more databases thatcollectively store organizational data associated with the organization,wherein the organizational data includes an object graph data structurehaving a plurality of data objects associated with the organizationaldata. The computer system includes one or more non-transitorycomputer-readable media that collectively store instructions that, whenexecuted by the one or more processors, cause the computer system toperform operations. The operations include receiving, from a userinterface, a rule associated with a trigger, the rule having a conditionfor activation of the trigger. Additionally, the operations includegenerating a dependency map associated with the rule, the dependency maphaving one or more data objects from the plurality of the data objectsthat are associated with the rule, detecting a change in a first dataobject from the plurality of the data objects, determining a dependencybetween the rule and the first data object based on the dependency map,determining that the condition for the activation of the trigger issatisfied based on the detected change in the first data object, andperforming an action associated with the activation of the trigger basedon the determination that the condition for the activation of thetrigger has been satisfied.

Another example aspect of the present disclosure is directed to acomputer-implemented method for implementing an organization managementplatform to manage applications for an organization. For example, thecomputer-implemented method performed by one or more computing devicescan access organizational data associated with the organization. Theorganizational data can include an object graph data structurecomprising a plurality of data objects associated with theorganizational data. Additionally, the method can receive a ruleassociated with a trigger. The rule can have a condition for activationof the trigger. Also, the method can generate a dependency mapassociated with the rule. The dependency map can have one or more dataobjects from the plurality of the data objects that are associated withthe rule. The method can determine a change in a first data object fromthe plurality of the data objects. The method can determine a dependencybetween the rule and the first data object based on the dependency map.In some instances, the dependency can be also based on the condition forthe activation of the trigger. Moreover, the method can determine thatthe condition for the activation of the trigger is satisfied based onthe determined change in the first data object. Furthermore, the methodcan perform an action associated with the activation of the triggerbased on the determination that the condition for the activation of thetrigger has been satisfied.

Another example aspect of the present disclosure is directed to one ormore tangible non-transitory computer-readable media storingcomputer-readable instructions that, when executed by one or moreprocessors, cause the one or more processors of a computing system toperform operations. For example, the operations can accessorganizational data associated with the organization. The organizationaldata can include an object graph data structure comprising a pluralityof data objects associated with the organizational data. The operationscan receive a rule associated with a trigger. The rule can have acondition for activation of the trigger. Additionally, the operationsgenerate a dependency map associated with the rule. The dependency mapcan have one or more data objects from the plurality of the data objectsthat are associated with the rule. The operations can determine a changein a first data object from the plurality of the data objects. Theoperations can determine dependency between the rule and the first dataobject based on the dependency map. In some instances, the dependencycan be also based on the condition for the activation of the trigger.Moreover, the operations can determine that the condition for theactivation of the trigger is satisfied based on the determined change inthe first data object. Furthermore, the operations can perform an actionassociated with the activation of the trigger based on the determinationthat the condition for the activation of the trigger has been satisfied.

Other aspects of the present disclosure are directed to various systems,apparatuses, non-transitory computer-readable media, user interfaces,and devices for providing triggers in a system of record. These andother features, aspects, and advantages of various embodiments of thepresent disclosure will become better understood with reference to thefollowing description and appended claims. The accompanying drawings,which are incorporated in and constitute a part of this specification,illustrate example embodiments of the present disclosure and, togetherwith the description, serve to explain the related principles.

BRIEF DESCRIPTION OF THE DRAWINGS

Detailed discussion of embodiments directed to one of ordinary skill inthe art is set forth in the specification, which makes reference to theappended figures, in which:

FIG. 1 depicts a block diagram of an example environment including acomputing system that performs operations, according to exampleembodiments of the present disclosure.

FIG. 2 depicts a block diagram of an example of a computing device,according to example embodiments of the present disclosure.

FIG. 3 depicts a block diagram of an example computing environmentincluding multiple computing systems, according to example embodimentsof the present disclosure.

FIG. 4 depicts a flow diagram of an example method for performing anaction in response to a trigger rule in a system of record that managesorganizational data, according to example embodiments of the presentdisclosure.

FIG. 5 depicts a flow diagram of an example method for configuration ofpredictive triggers using a timeline marker, according to exampleembodiments of the present disclosure.

FIG. 6 depicts an illustration of an example user interface forconfiguring a rule associated with a trigger, according to exampleembodiments of the present disclosure.

FIG. 7 depicts an illustration of an example user interface forselecting a trigger object when configuring a trigger associated with arule, according to example embodiments of the present disclosure.

FIG. 8A depicts an illustration of an example user interface fordefining a condition for a trigger object when configuring a triggerassociated with a rule, according to example embodiments of the presentdisclosure.

FIG. 8B depicts an illustration of an example user interface fordefining a condition for a trigger object when configuring a triggerassociated with a rule, according to example embodiments of the presentdisclosure.

FIG. 9 depicts an illustration of an example user interface for a timeand attendance application, according to example embodiments of thepresent disclosure.

Reference numerals that are repeated across plural figures are intendedto identify the same features in various implementations.

DETAILED DESCRIPTION

Generally, the present disclosure is directed to improved computersystems, computer applications, computer-implemented methods, userinterfaces, and/or services for providing triggers in a system of recordthat manages organizational data and performing an action associatedwith the activation of the trigger. In some instances, the trigger andthe action can be associated with a time and attendance application. Forexample, the activation of the trigger can be based on the attendancedata of an employee and the action can be performed on the organizationmanagement platform. The attendance data of the employee can be managedby the time and attendance application that is integrated with theorganization management platform.

Organizations generally use many different types of applications andcomputer systems to sustain operations. Such applications and computersystems generally rely on organizational data and processing tied toorganizational data. Usually, organizational data is generated,modified, and utilized separately across various different types ofthird-party applications and computer systems. For example, variousdifferent third-party applications and computer systems may generateand/or store portions of organizational data, may perform operationsbased on organizational data, may provide applications and relatedservices to users based on organizational data, etc. However, thisleaves organizations responsible for ensuring that their ownorganizational data is updated consistently and regularly across avariety of different applications and computer systems. In many cases,organizational data and associated processes become out of sync when notupdated consistently. As such, organizations generally are left toperforming continuous manual processing of organizational data,coordinating and ensuring compatibility between changing configurationsacross each of multiple different third-party applications and computersystems, and/or building their own expensive, proprietary integrationsacross various third-party applications and computer systems that mustbe maintained and updated (e.g., when organizational procedures change,based on organizational data management changes, when vendors updatetheir own proprietary third-party applications, etc.). As such,organizations can benefit from improved computer systems, computerapplications, computer-implemented methods, user interfaces, and relatedservices for providing triggers in a system of record that managesorganizational data and associated operations performed based on theorganizational data across separate third-party applications.

The present disclosure describes examples for providing alerts in asystem of record that manages organizational data and associatedoperations across various third-party applications. In examples of thepresent disclosure, a computer system may perform an action associatedwith an activation of a trigger. The trigger can include a set of one ormore conditions for activation of the trigger and a set of one or moreoperations for execution based on the activation of the trigger. Exampleimplementations of the present disclosure can be implemented in thecontext of or as a portion of an organizational data management platformthat controls and leverages organizational data to manage organizationalapplications such as payroll, operations, human resources (e.g.,onboarding and offboarding), benefits, information technology and devicemanagement, third-party application integration and access, and manyothers.

The organizational data management platform can hold, for each of one ormore organizations, a centralized set of organizational data that actsas a single, centralized system of record for all organizationalmanagement processes for that organization. Each organization caninclude a number of users which are able to access and interact with theorganizational data management platform. Some users may haveadministrative permissions which define whether the user is able toaccess and/or modify certain types of organizational data for theirorganization.

The organizational data for each organization can include data directlyentered into the organizational data management platform and/or caninclude data retrieved, pulled, or otherwise obtained from one or morefirst party and/or third-party applications with which theorganizational data management platform may have varying levels ofintegration. This ingestion and storage of data from third-partyapplications is in contrast to systems which simply sit on top ofthird-party applications and apply rules at run time.

The organizational data can, in some implementations, be held as one ormore object databases. For example, multiple object classes can bedefined in the object databases. Example object classes includeemployees, devices, job candidates, benefits policies, documents, payinstances, timecards, and/or other objects. For each object, values canbe provided and maintained for one or more attributes, such as location,role, salary, etc. Links can be made between different objects. Forexample, one or more device objects can be associated with employeeobjects.

The object database can be represented as or can store data which can berepresented as one or more graphs with nodes that correspond to dataobjects and edges that correspond to links or logical associationsbetween objects and/or object attributes. Graphs can be traversed tounderstand or leverage relationships among objects and their attributes.In one example, the organizational data can be synthesized into a singlegraph which includes multiple classes of objects and defines complexrelationships among objects and their attributes. For example, allworkflows, including payroll, IT, etc. can be run through one platformand graph. In some implementations, the employee objects can be referredto and/or treated as sentinel nodes.

The systems, methods, and computer program products described hereinprovide a number of technical effects and benefits. As one example, theembodiments described in the present disclosure provide configurableapplication alerts in real-time for a system of record that provideautomated evaluation of conditions and automated execution of operationswithin the system of record. Operations can also be executed in separatethird-party applications that utilize different underlying technologiesand technical designs, for example, more efficiently and with fewercomputing resources (e.g., less processing power, less memory usage,less power consumption, etc.), than would otherwise be wasted bymaintaining custom, proprietary, and/or manual synchronizationprocesses. In particular, examples of the present disclosure provideautomation of trigger operations in a system of record and acrossdifferent applications and systems using a rigorous computerizedprocess.

In some instances, the time and attendance application can be areal-time alert system that can gather time and attendance data ofemployees of an organization in real-time. For example, the time andattendance application can obtain the time and attendance data ofemployees when an event occurs (e.g., clocking-in, clocking-out) or at acertain time interval (e.g., every five minutes, every ten minutes). Thetime and attendance application can be a standalone application or athird-party application. The time and attendance application can beintegrated with the organization management platform that managesapplications for an organization. The time and attendance applicationcan communicate (e.g., send and receive data) directly with theapplications for the organization, or the time and attendanceapplication can communicate with the applications through theorganization management platform.

The time and attendance application can track dependencies of a specificalert, the conditions for activating the specific alert, the differentpolicies applied to different users (e.g., employees, managers), andactions to be performed with the activation of the specific alert. Thetime and attendance application can be a standalone system to optimizefor determining a condition for the activation of a trigger that mayoccur in the future based on information currently available.Additionally, the time and attendance application can train amachine-learning model and use a machined-learned model to determine acondition for the activation of the trigger based on a dependency map.

The dependency map can include one or more data objects from a pluralityof data objects that are associated with a rule. For example, theorganizational data associated with the organizational managementplatform can include an object graph data structure. The object graphstructure can include a plurality of data objects associated with theorganizational data. The rule can have one or more conditions foractivation of the trigger. The dependency map can have specific usecases for certain rules based on the machined-learned model. As aresult, the time and attendance application can have a predictivetrigger, which allows for an action (e.g., alert) to be performed priorto an event (e.g., employee working overtime in a pay period) occurring.Conventional systems may only have triggers that are activated once theevent has occurred, which in some instances, may be too late for a user(e.g., manager) to react to the event.

For example, the real-time alert system of the time and attendanceapplication can send an alert to a manager of an employee to alert themanager that the employee is expected to work overtime in the currentpay period. Continuing with this example, the time and attendanceapplication can access (e.g., obtain, retrieve) the amount of time anemployee has already worked, the expected amount to time the employee isexpected to work in a future period (e.g., number of future hoursexpected to work in the current pay period), and determine whether theemployee will be working overtime in the current pay period. The amountof time an employee has already worked can be accessed automatically inreal-time and a trigger can be activated when determined that overtimewill likely occur during the current pay period.

Due to the scale of data, conventional systems may not be able todetermine in real-time the values of data objects that constantlychange. Therefore, conventional systems may not be able to be set upwith predictive triggers and may not be able to use reactionarypredictive models. In contrast, the time and attendance application,using the dependency map, can store, access, and determine in real-timethe values of dependencies (e.g., data objects) that constantly changeby accessing the data objects in real-time. The dependency map can allowthe time and attendance application to monitor (e.g., access, retrieve,database query) specific data objects that have a relationship withconditions for activating a trigger. In some instances, the time andattendance application can access all of the specific data objects andmetadata associated with a condition for activating a trigger at aregular interval (e.g., every five minutes). Additionally, when thevalue of a data object changes, it can trigger a determination by thetime and attendance application on whether the change has satisfied acondition for the activation of a trigger. Additionally, the time andattendance application can use machine-learned reactionary predictivemodels to determine whether an event in the future will occur. Moreover,a reactionary predictive model can be further trained based on thedependency map, the conditions for activating a trigger, thedetermination on whether an event in the future will occur based on theconditions, and whether the event in the future did occur.

The dependency map can track dependencies (e.g., data objects)associated with conditions that activate a trigger. The dependency mapallows for symbolic understanding of the conditions and dependencies, incontrast with a conventional system that activates a trigger when a dataobject is either true or false. With the dependency map, instead of acondition being dependent on data objects, the time and attendanceapplication allows for the condition to be dependent upon any objectthat has a relationship with the conditions for activating the trigger.In some instances, when the value of one of the data objects changes,the time and attendance application performs a refresh action. Therefresh action can include retrieving the values for the dependenciesassociated with a rule. In some instances, the refresh action caninclude retrieving some of the values for the data objects from theplurality of data objects, where the data retrieved is based on thedependency map for a specific rule.

For example, when an employee either clocks into work or clocks out ofwork, the time and attendance application can determine that a change ina first data object has occurred, and as a result, perform a refreshaction. By using the dependency map associated with a specific rule, thetime and attendance application can retrieve the values for all of thedependencies associated with the specific rule. The dependency map caninclude all of the data objects for the time and attendance applicationto check (e.g., retrieve the value associated with the data object) whena change in the first data object has occurred. The dependency map canbe generated based on the specific rule, and the conditions associatedwith the specific rule. The time and attendance application can select,based on the dependency map, a subset of data objects from the pluralityof data objects to retrieve data from. The subset of data objects can bethe dependencies associated with the specific rule. Subsequently, thetime and attendance application can determine whether a condition foractivating a trigger associated with the specific rule has beensatisfied based on the retrieved values for all of the dependenciesassociated with the rule. The time and attendance application canperform an action (e.g., alert, approval request) when one of theconditions for activating the trigger is satisfied.

In another example, the time and attendance application can access thedata objects associated with the specific rule in real-time using thedependency map. The dependency map allows for the time and attendanceapplication to determine and filter only for the data objects that areassociated with the specific rule. Due to the filter, a limited amountof data is retrieved, which allows for the time and attendanceapplication to retrieve the data in real-time. By retrieving the data inreal-time, the triggers and actions performed (e.g., approval process)can be based on real-time data. When the value of the data object hasbeen changed, then the time and attendance application can make adetermination on whether the conditions for the activation of thespecific rule has been activated. The time and attendance applicationcan also use timeline markers to perform an action at a later time inthe future if further conditions are satisfied in the future.

To illustrate, the time and attendance can obtain real-time attendancedata and set a condition stating when the amount of time worked is abovea threshold than it is overtime, which can require additional approval.The time and attendance application allows managers to approve overtimerequests in real-time or prior to the overtime occurring using themachined-learned predictive models. In another example, a manager of adepartment may want to keep the overall labor amount of the departmentbelow a certain threshold. The time and attendance application can,using the predictive model, alert the manager prior to the thresholdbeing exceeded, and can also alert the manager in real-time when thethreshold is exceeded. The time and attendance application allows fortasks (e.g., alerts, approvals) to be automated in real-time while users(e.g., employee, manager) are working. Automated approvals can reducedistractions to users and real-time alerts can improve budgetefficiencies and other preventative measures. Real-time updates andalerts can be useful for better expense management of an organization.

The time and attendance application allows alerts to be triggered basedon a rule-based engine. The rule-based engine enables a user to havemore flexibility by configuring rules that are custom-tailored to theuser. The rule-based engine of the time and attendance applicationsupports various levels of flexibility for setting up rules. Forexample, a user can set up (e.g., compose) a rule based on differentconditions (e.g., attributes stored in a database, data objects storedin the organizational data) by filtering on the different conditions.The user can write a rule associated with a certain action to beperformed when a change occurs in one or more of the conditions. Theflexibility also allows users to set up custom-made triggers based onthe different conditions, and different actions to be performed when thetrigger is activated. Additionally, the rule-based engine and thepredictive model allow for a user to set rules that can trigger an alertprior to the event occurring. Furthermore, a second alert can betriggered when the event does occur.

The time and attendance application can generate a dependency map thatincludes a mapping between data objects and their dependencies. Themapping can include relationships (e.g., first-degree relationship,second-degree relationship, third-degree relationship) between twodifferent data objects. Additionally, the dependency map can be updatedwhen the relationships between two different data objects change. Forexample, if an employee moves to a different department in the sameorganization, then the dependency map is updated based on this update.The dependency map can include two-way mapping, which can allow for thedependency map to be easily updated when any changes occur in the objectgraph data structure.

In some instances, a user (e.g., customer) can write a new rule using auser interface of the organizational management platform. Theorganizational management platform can have organizational data thatincludes an object graph data structure. The object graph data structurecan include a plurality of data objects. The rule can have one or moreconditions for activation of a trigger. As illustrated in the airlinepilot example below, the rule can be associated with metadata, and theone or more conditions can be determined by the computing system basedon the metadata. The new rule can be automatically mapped to dataobjects in the object graph data structure based on the dependency mapand the metadata associated with each data object. For example, themapping can be performed using an applicative functor. The applicativefunctor can automatically do the mapping for the rule based on themetadata for the rule and the metadata for each data object. Using theapplicative functor, the mapping can be expressed in a context, and thecontext can describe the data dependency. Applicative functors can allowfor functorial computations to be sequenced without using results fromprior computations in the definition of subsequent ones.

Once the rule is mapped to one or more dependencies (e.g., a subset ofdata objects from the plurality of data objects in the object graph datastructure) using the dependency map, then the alerts can be based onthese dependencies. Therefore, when a change in one of the dependencies(e.g., a first data object) is detected, then the system can determinewhether a condition for the activation of a trigger has been satisfied.Subsequently, the system can perform an action associated with the rulebased on the activation of the trigger. Alternatively, the system canperform an action at a time in the future if a second trigger isactivated. The second trigger being associated with a second set ofconditions for activation of the second trigger.

For example, the rule can be that an airplane pilot cannot work acertain number of hours in a week, and the condition for this rule canbe associated with data objects (e.g., employee records) and metadatathat includes ‘pilot’ as a job title. Therefore, the conditions withthis rule can be to activate an alert when an employee who is a ‘pilot’is expected to exceed a certain number of hours worked in a week. Onebenefit as highlighted by this example is that it allows human resourcesto automatically set custom rules that abide by the rules andregulations of a certain industry. The custom rules can provide alertsin real-time and can provide predictive alerts, which can be criticalgiven the rules and regulations associated with a specific industry. Forexample, if the pilot worked longer than expected hours (e.g., firstflight was delayed) and the pilot is expected to fly again tomorrow in asecond flight, it could result in the pilot exceeding a certain numberof hours in a week, then the system can send a predictive alert prior tothe second flight.

In some instances, the time and attendance application can besynchronized with third-party applications (e.g., payroll) associatedwith the organizational management platform. For example, the time andattendance application can determine that an employee has workedovertime based on the rules received from the user interface. Whendetermined that the employee has worked overtime, the computing systemcan perform an action, such as automatically updating the number ofhours worked in the third-party application (e.g., payroll application)so that the employee is automatically compensated for the overtime.

In some instances, the time and attendance application can include apredictive trigger. The predictive trigger can be associated with atimeline marker. The timeline marker for a predictive trigger can beassociated with a first condition, and a second condition at a certaintime after the first condition has been met. The system can create apredictive alert in the future based on projecting the current statusforward. For example, if the current status continues (e.g., employeekeeps working) at a certain time in the future, then an action isperformed (alert is presented to a user). Alternatively, if the currentstatus does not continue (e.g., employee stops working) at a certaintime in the future, then the action is canceled.

In some instances, the time and attendance application can dynamically(e.g., in real-time) change conditions for approval based on updatedinformation received from the organizational data. The conditions can bechanged automatically (e.g., without user input) based on updatedinformation. For example, a rule can be set to send an alert when a setof employees from a certain group do not meet a certain threshold valuefor a performance attribute. When updated information is received that afirst employee from the set of employees is on leave (e.g., vacation),then the time and attendance application can automatically update theconditions associated with the rule to exclude the first employee forthe rule.

With reference to the Figures, example embodiments of the presentdisclosure will be discussed in further detail.

FIG. 1 depicts a block diagram of an example environment 100 including acomputing system 110 that performs operations according to exampleembodiments of the present disclosure. The environment 100 includes anetwork 102, a computing system 110, one or more computing devices 112,one or more processors 114, one or more memory devices 116, data 118,instructions 120, a remote computing system 130, one or more computingdevices 132, one or more processors 134, one or more memory devices 136,data 138, instructions 140, one or more computing devices 152, one ormore processors 154, one or more memory devices 156, data 158, andinstructions 160.

The network 102 can include any type of communications network. Forexample, the network 102 can include a local area network (LAN), a widearea network (WAN), an intranet, an extranet, and/or the internet.Further, the network 102 can include any number of wired or wirelessconnections and/or links that can be used to communicate with one ormore computing systems (e.g., the computing system 110 and/or the remotecomputing system 130) and/or one or more devices (e.g., the one or morecomputing devices 152). Communication over the network 102 can beperformed via any type of wired and/or wireless connection and can use awide variety of communication protocols (e.g., TCP/IP, HTTP, SMTP, FTP),encodings or formats (e.g., HTML, XML), and/or protection schemes (e.g.,VPN, secure HTTP, SSL).

The computing system 110 can include any combination of systems and/ordevices including one or more computing systems (not shown) and/or oneor more computing devices 112. Further, the computing system 110 may beconnected (e.g., networked) to one or more computing systems (e.g.,remote computing system 130) and/or one or more computing devices (e.g.,one or more computing devices 132, 152) via the network 102. Thecomputing system 110 may operate in various different configurationsincluding as a server or a client machine in a client-server networkenvironment, or as a peer machine in a peer-to-peer (or distributed)network environment. Though the computing system 110 is depicted in FIG.1 as a single device, the computing system 110 can include anycollection or combination of devices that individually or in combinationwith other devices, execute a set of one or more instructions to performany one or more of the operations discussed herein.

In this example, the computing system 110 includes one or more computingdevices 112. The one or more computing devices 112 can include any typeof computing device. For example, the one or more computing devices 112can include a personal computing device (e.g., a desktop computingdevice), a mobile computing device (e.g., a smartphone or tabletdevice), a wearable computing device (e.g., a smartwatch device), anembedded computing device, a web appliance, a server computing device, anetwork router, a switch, a bridge, or any device capable of executing aset of instructions (e.g., any combination of instructions which caninclude sequential instructions and/or parallel instructions) associatedwith one or more operations and/or one or more actions to be performedby the computing system 110 or any of the constituent components and/ordevices of the computing system 110.

Any of the one or more computing devices 112 can include the one or moreprocessors 114. The one or more processors 114 can include anyprocessing device (e.g., a processor core, a microprocessor, an ASIC, aFPGA, a controller, or a microcontroller) and can include one processoror multiple processors that may be operatively connected. In someembodiments, the one or more processors 114 may include one or morecomplex instruction set computing (CISC) microprocessors, one or morereduced instruction set computing (RISC) microprocessors, one or morevery long instruction word (VLIW) microprocessors, and/or one or moreprocessors that are configured to implement other instruction sets.

The one or more computing devices 112 can include the one or more memorydevices 116. The one or more memory devices 116 can be used to storedata and/or information and can include one or more computer-readablemedia, one or more non-transitory computer-readable storage media,and/or one or more machine-readable media. Though the one or more memorydevices 116 are depicted in FIG. 1 as a single unit (e.g., a singlemedium), the computer-readable storage media can include a single mediumor multiple media (e.g., a centralized or distributed database, and/orassociated caches and servers) that store one or more sets ofinstructions. Further, the computer-readable storage media can includeany medium that is capable of storing, encoding, and/or carrying a setof instructions for execution by a computing device and which may causethe computing device to perform any of the one or more operationsdescribed herein. In some embodiments, the computer-readable storagemedia can include one or more solid-state memories, one or more opticalmedia, and/or one or more magnetic media. By way of example, the one ormore memory devices 116 can include any combination of random-accessmemory (RAM), read-only memory (ROM), EEPROM, EPROM, one or more flashmemory devices, and/or one or more magnetic storage devices (e.g., oneor more hard disk drives).

The one or more processors 114 can be configured to execute one or moreinstructions to perform the operations described herein including, forexample, one or more operations associated with performing an actionassociated with the activation of a trigger for a time and attendanceapplication. The trigger can be based on a rule received from a userinterface. Further, the one or more memory devices 116 can store thedata 118 and/or the instructions 120, which can be executed by the oneor more processors 114 to cause the one or more computing devices 112 toperform one or more operations. For example, the one or more operationsperformed by the one or more processors 114 can include receiving, froma user interface, a rule associated with a trigger, the rule having acondition for activation of the trigger, generating a dependency mapassociated with the rule, the dependency map having one or more dataobjects from the plurality of the data objects that are associated withthe rule, detecting a change in a first data object from the pluralityof the data objects, determining a dependency between the rule and thefirst data object based on the dependency map, determining that thecondition for the activation of the trigger is satisfied based on thedetected change in the first data object and the condition foractivation of the trigger; and performing an action associated with theactivation of the trigger based on the determination that the conditionfor the activation of the trigger has been satisfied.

The data 118 can include organizational data (e.g., organizational datathat can include one or more organizational records), one or more datastructures defining, describing, and/or otherwise associated with theorganizational data, rule data (e.g., rule data that includes one ormore rules used to configure an application policy, one or more rulesmaintained by or otherwise associated with an organizational datamanagement system, etc.), application data (e.g., application dataassociated with a plurality of applications including one or morethird-party applications and/or one or more intra-organizationalapplications), third-party integration data (e.g., data providingconfiguration and/or other information for performing integration andsynchronization with each of one or more different third-party systemsand/or applications), time and attendance data (e.g., time dataassociated with an employee or a group of employees, attendance dataassociated with an employee or group of employees), policy data (e.g.,application policy data, organization policy data, policy data thatincludes one or policies associated with the organizational data, therule data, the application data, time and attendance data, one or moreapplications, one or more devices, etc.), data that includesinstructions in a custom computer language (e.g., a custom querylanguage based on organizational data), data that includes rulesassociated with the custom computer language, and/or other types ofdata. Further, the instructions 120 can include one or more instructionsto use data including the data 118 to perform any one or more of thevarious operations described herein. In some embodiments, the one ormore memory devices 116 can be used to store one or more applicationsthat can be operated by the one or more processors 114. The data 118,the instructions 120, and/or the one or more applications can beassociated with an organization. Further, the computing system 110 maybe associated with an organization and may be configured to manage oneor more applications.

Any of the one or more computing devices 112 can include one or moreinput devices 122 and/or one or more output devices 124. The one or moreinput devices 122 can be configured to receive input (e.g., user input)and can include one or more touch screens, one or more keyboards, one ormore pointing devices, (e.g., mouse device), one or more buttons, one ormore microphones, and/or one or more cameras. The one or more outputdevices 124 can include one or more display devices, one or moreloudspeaker devices, one or more haptic output devices. By way ofexample, the one or more output devices 124 can be used to display agraphical user interface via a display device that can include a touchscreen layer that is configured to detect one or more inputs (e.g., oneor more user inputs). The one or more processors 114 may perform one ormore operations (e.g., performing an action based on an activation of atrigger) based at least in part on the one or more inputs.

The remote computing system 130 includes one or more computing devices132. Each of the one or more computing devices 132 can include one ormore processors 134, one or more memory devices 136, the data 138,and/or the instructions 140. The remote computing system 130 can includeany of the attributes and/or capabilities of the computing system 110.Further, the remote computing system 130 can communicate with one ormore devices and/or one or more systems via the network 102. In someembodiments, the remote computing system 130 can include one or moreapplications (e.g., computer software applications comprising computerinstructions) that can be stored and/or executed by the remote computingsystem 130.

One or more computing devices 152 (e.g., user devices or any other typesof devices) can include one or more processors 154, one or more memorydevices 156, the data 158, and/or the instructions 160. Such one or morecomputing devices 152 may include any of the attributes and/orcapabilities of the one or more computing devices 112, 132. Further,such one or more computing devices 152 can communicate with one or moredevices and/or one or more systems via the network 102. In someembodiments, the one or more computing devices 152 can include one ormore applications (e.g., computer software applications comprisingcomputer instructions) that can be stored and/or executed by such one ormore computing devices 152.

FIG. 2 depicts a block diagram of an example computing device 200according to example embodiments of the present disclosure. Thecomputing device 200 can include one or more attributes and/orcapabilities of the computing system 110, the remote computing system130, the one or more computing devices 152, and/or the computing device200. Furthermore, the computing device 200 can be configured to performone or more operations and/or one or more actions that can be performedby the computing system 110, the remote computing system 130, the one ormore computing devices 152, and/or the computing device 200.

As shown in FIG. 2 , the computing device 200 can include one or morememory devices 202, organizational data 203, rule data 204, time andattendance data 205, policy data 206, integration data 207, datastructures 208, application object data 210, one or more interconnects212, one or more processors 220, a network interface 222, one or moremass storage devices 224, one or more output devices 226, one or moresensors 228, one or more input devices 230, and/or one or more locationdevices 232.

The one or more memory devices 202 can store information and/or data(e.g., organizational data 203, rule data 204, time and attendance data205, policy data 206, integration data 207, data structures 208,application object data 210, and/or any other types of data). Further,the one or more memory devices 202 can include one or morenon-transitory computer-readable storage media, including RAM, ROM,EEPROM, EPROM, flash memory devices, magnetic disks, and any combinationthereof. The information and/or data stored by the one or more memorydevices 202 can be executed by the one or more processors 220 to causethe computing device 200 to perform one or more operations describedherein.

The organizational data 203 can include one or more portions of data(e.g., the data 118, the data 138, and/or the data 158, which aredepicted in FIG. 1 ) and/or instructions (e.g., the instructions 120,the instructions 140, and/or the instructions 160, which are depicted inFIG. 1 ) that are stored respectively in any of the one or more memorydevices 116, 136, 156. The organizational data 203 also can includeinformation associated with one or more applications (e.g., one or morethird-party applications), one or more organizational records and/or oneor more organizational policies. In some embodiments, the organizationaldata 203 can be received from one or more computing systems (e.g., theremote computing system 130 depicted in FIG. 1 ) which can include oneor more computing systems that are remote (e.g., in another room,building, part of town, city, or nation) from the computing device 200.In some instances, the organization data 203 can include the rule data204, the time and attendance data 205, the policy data 206, theintegration data 207, the data structures 208, and the applicationobject data 210.

The rule data 204 can include one or more portions of data (e.g., thedata 118, the data 138, and/or the data 158, which are depicted in FIG.1 ) and/or instructions (e.g., the instructions 120, the instructions140, and/or the instructions 160, which are depicted in FIG. 1 ) thatare stored in the one or more memory devices 116, the one or more memorydevices 136, and/or the one or more memory devices 156, respectively.The rule data 204 can include information associated with one or morerules that can be used to generate and/or implement an applicationpolicy, a dependency map, a trigger, an action based on the activationof the trigger, and so on. The rule data 204 also can includeinformation associated with one or more rules of an organizational datamanagement system (e.g., base or default rules provided or enforced bythe system, one or more custom rules configured by an organization,etc.). In some embodiments, the rule data 204 can be received from oneor more computing systems (e.g., the remote computing system 130depicted in FIG. 1 ), which can include one or more computing systemsthat are remote from the computing device 200.

The time and attendance data 205 can include one or more portions ofdata (e.g., the data 118, the data 138, and/or the data 158, which aredepicted in FIG. 1 ) and/or instructions (e.g., the instructions 120,the instructions 140, and/or the instructions 160, which are depicted inFIG. 1 ) that are stored in the one or more memory devices 116, the oneor more memory devices 136, and/or the one or more memory devices 156,respectively. Additionally, the time and attendance 205 can includeinformation associated with a current amount of time worked by anemployee or group of employees, expected amount of time to be worked byan employee or group of employee in a specific time period (e.g., day,weekly, bi-weekly, monthly, annually). Furthermore, the time andattendance data 205 can include information associated with attendance(e.g., sick leave, paid time off, federal holidays, overtime, clock-intime, clock-out time) of an employee or group of employees. In someinstances, the time and attendance data 205 can be collected inreal-time and uploaded to the computing system 110 or retrieved by thecomputing system periodically (e.g., every five minutes, every fifteenminute). In some embodiments, the time and attendance data 205 can bereceived from one or more computing systems (e.g., the remote computingsystem 130 depicted in FIG. 1 ) which can include one or more computingsystems that are remote from the computing device 200.

The policy data 206 (application policy data, organization policy data)can include one or more portions of data (e.g., the data 118, the data138, and/or the data 158, which are depicted in FIG. 1 ) and/orinstructions (e.g., the instructions 120, the instructions 140, and/orthe instructions 160, which are depicted in FIG. 1 ) that are stored inthe one or more memory devices 116, the one or more memory devices 136,and/or the one or more memory devices 156, respectively. Additionally,the organization policy data can include information associated with oneor more organizational policies that are used to regulate one or moreapplications (e.g., one or more third-party applications), one or morecomputing devices, and/or one or more records which can include one ormore organizational records and/or one or more employee records.Furthermore, the application policy data can include informationassociated with one or more policies that are used to implement anapplication policy associated with one or more applications (e.g., oneor more third-party applications), one or more computing devices, and/orone or more records which can include one or more organizational recordsand/or one or more employee records. In some embodiments, the policydata 206 can be received from one or more computing systems (e.g., theremote computing system 130 depicted in FIG. 1 ) which can include oneor more computing systems that are remote from the computing device 200.

The integration data 207 can include one or more portions of data (e.g.,the data 118, the data 138, and/or the data 158, which are depicted inFIG. 1 ) and/or instructions (e.g., the instructions 120, theinstructions 140, and/or the instructions 160, which are depicted inFIG. 1 ) that are stored in the one or more memory devices 116, the oneor more memory devices 136, and/or the one or more memory devices 156,respectively. The integration data 207 can include configuration and/oroperational information associated with integrating and synchronizingdata (e.g., organizational data 203) among one or more applications. Forexample, the integration data 207 can include information that enablesintegration and synchronization between each of one or more applications(e.g., third-party applications and/or other applications). In anembodiment, the integration data 207 provides integration informationthat allows an organizational data management system (e.g., a system ofrecord for organizational data and organizational data processing), forexample, to obtain information from one or more applications (e.g.,third party and/or other applications), to perform operations involvingorganizational data (e.g., organizational data 203) in theorganizational data management system, to synchronize organizationaldata across one or more applications, to perform one or more actionsinvolving the applications based on organizational data in theorganizational data management system, and/or to perform one or moreother operations associated with managing organizational data as asystem of record. In some embodiments, the integration data 207 can bereceived from one or more computing systems (e.g., the remote computingsystem 130 depicted in FIG. 1 ), which can include one or more computingsystems that are remote from the computing device 200.

The data structures 208 can include one or more portions of data (e.g.,the data 118, the data 138, and/or the data 158, which are depicted inFIG. 1 ) and/or instructions (e.g., the instructions 120, theinstructions 140, and/or the instructions 160, which are depicted inFIG. 1 ) that are stored in the one or more memory devices 116, the oneor more memory devices 136, and/or the one or more memory devices 156,respectively. The data structures 208 can include one or more logicaland/or physical instances of information representing or describing oneor more entities (e.g., objects, records, etc.), one or morerelationships involving one or more of the entities, one or more datavalues associated with each of one or more of the entities and/or one ormore of the relationships, one or more functions and/or operations thatmay be applied to each of one or more of the entities and/or one or moreof the relationships, any other data or metadata describing or otherwisedefining structure and/or rules associated with one or more of theentities and/or one or more of the relationships, etc.

The data structures 208 can be implemented and utilized with one or moretypes of computer software, computer hardware, or any combinationthereof. In an embodiment, the data structures 208 are used to representand perform processing associated with various types of organizationaldata (e.g., organizational data 203). For example, the data structures208 may include information about various types of information andentities associated with organizational data including, but not limitedto, individuals (e.g., employees, vendors, independent contractors),departments, teams, roles, groups, locations, offices, documents, tasks,reports, accounts, devices, applications, end-user applications,licenses, workflows, alerts, time information, attendance informationand/or any other types of entities representing or related to managingorganizational data (e.g., organizational data 203).

The data structures 208 also can define various relationships among thevarious entities associated with organizational data. For example, thedata structures 208 may define and be used to enforce relationships suchas each employee must be assigned to a department, each employee can beincluded on one or more teams, each employee must be assigned to aprimary location, each employee may be assigned to one or more secondarylocations, employees may have one or more computing devices, each vendormust have a current audit, each independent contractor must beassociated with a contract, and/or any other relationships provided byan organizational data management system or configured for anorganization that utilizes an organizational data management system(e.g., a system for managing organizational data 203 based on one ormore organizational data management applications).

In some embodiments, the data structures 208 can include one or moreobject graphs (e.g., based on an object graph data model) providinginformation about entities, relationships, and/or any other aspectsrelating to the definition, structure, and rules associated withorganizational data (e.g., organizational data 203). The data structures208 also can include any one or more other types of data structures(e.g., with or without the use of object graphs) that provideinformation about entities, entity attributes, entity attributecategories, relationships, and/or any other aspects of the definition,structure, and/or rules associated with organizational data. In someembodiments, the data structures 208 can be received from one or morecomputing systems (e.g., the remote computing system 130 depicted inFIG. 1 ), which can include one or more computing systems that areremote from the computing device 200.

In some instances, a dependency map 209 generated by the computingsystem 110 can be part of the data structures 208. The dependency map209 can define various relationships among the various entities (e.g.,data object) and a rule received by the computing system 110. Therelationships can be defined by the computing system 110 based on theobject graphs and the application object data 210.

The application object data 210 can include one or more portions of data(e.g., the data 118, the data 138, and/or the data 158, which aredepicted in FIG. 1 ) and/or instructions (e.g., the instructions 120,the instructions 140, and/or the instructions 160, which are depicted inFIG. 1 ) that are stored in the one or more memory devices 116, the oneor more memory devices 136, and/or the one or more memory devices 156,respectively. Furthermore, the application object data 210 generally caninclude any information used to implement any particular type ofapplication object or associated data structure that stores, references,utilizes, and/or processes data (e.g., organizational data 203). Forexample, such types of application objects generally may include, butare not limited to, application triggers, actions performed based on atrigger, reports, workflows, tasks, custom application objects, and/orany other types of objects used to store and/or process data in a systemof record, such as an organizational data management system. Further,application object data 210 used to implement any particular type ofapplication object or associated data structure may include, but is notlimited to, instructions in a computer language (e.g., a custom computerlanguage provided by an organizational data management system formanaging organizational data 203), metadata associated with applicationobjects or related data structures, data associated with one or moreparticular instances of application objects or related data structures,data associated with configuration of one or more application objects orrelated data structures, etc. In some embodiments, the applicationobject data 210 can be received from one or more computing systems(e.g., the remote computing system 130 depicted in FIG. 1 ) which caninclude one or more computing systems that are remote from the computingdevice 200.

The one or more interconnects 212 can include one or more interconnectsor buses that can be used to send and/or receive one or more signals(e.g., electronic signals) and/or data (e.g., organizational data 203,rule data 204, time and attendance data 205, policy data 206,integration data 207, data structures 208, application object data 210,and/or any other data) between components of the computing device 200,including the one or more memory devices 202, the one or more processors220, the network interface 222, the one or more mass storage devices224, the one or more output devices 226, the one or more sensors 228(e.g., a sensor array), the one or more input devices 230, and/or theone or more location devices 232. The one or more interconnects 212 canbe arranged or configured in different ways. For example, the one ormore interconnects 212 can be configured as parallel or serialconnections. Further the one or more interconnects 212 can include oneor more internal buses that are used to connect the internal componentsof the computing device 200 and one or more external buses used toconnect the internal components of the computing device 200 to one ormore external devices. By way of example, the one or more interconnects212 can include different interfaces including Industry StandardArchitecture (ISA), Extended ISA, Peripheral Components Interconnect(PCI), PCI Express, Serial AT Attachment (SATA), HyperTransport (HT),USB (Universal Serial Bus), Thunderbolt, IEEE 1394 interface (FireWire),and/or other interfaces that can be used to connect components.

The one or more processors 220 can include one or more computerprocessors that are configured to execute the one or more instructionsstored in the one or more memory devices 202. For example, the one ormore processors 220 can, for example, include one or more generalpurpose central processing units (CPUs), application specific integratedcircuits (ASICs), and/or one or more graphics processing units (GPUs).Further, the one or more processors 220 can perform one or more actionsand/or operations including one or more actions and/or operationsassociated with the organizational data 203, the rule data 204, the timeand attendance data 205, the policy data 206, the integration data 207,the data structures 208, the application object data 210, and/or anyother data. The one or more processors 220 can include single ormultiple core devices including a microprocessor, microcontroller,integrated circuit, and/or a logic device.

The network interface 222 can support network communications. Thenetwork interface 222 can support communication via networks including alocal area network and/or a wide area network (e.g., the internet). Forexample, the network interface 222 can allow the computing device 200 tocommunicate with the computing system 110 via the network 102.

The one or more mass storage devices 224 (e.g., a hard disk drive and/ora solid-state drive) can be used to store data including theorganizational data 203, the rule data 204, the time and attendance data205, the policy data 206, the integration data 207, the data structures208, the application object data 210, and/or any other data. The one ormore output devices 226 can include one or more display devices (e.g.,liquid crystal display (LCD), OLED display, mini-LED display, micro-LEDdisplay, plasma display, and/or cathode ray tube (CRT) display), one ormore light sources (e.g., LEDs), one or more loudspeakers, and/or one ormore haptic output devices (e.g., one or more devices that areconfigured to generate vibratory output).

The one or more sensors 228 can be configured to detect various statesand can include one or more cameras, one or more light detection andranging (LiDAR) devices, one or more sonar devices, and/or one or moreradar devices. Further, the one or more sensors 228 can be used toprovide input (e.g., an image of a user captured using the one or morecameras) that can be used as part of invoking or performing one or moreoperations. For example, the one or more sensors 228 can be used toauthenticate the identity of a user and determine an authorization levelbased on an image of the user's face that is captured using the one ormore sensors 228.

The one or more input devices 230 can include one or more touchsensitive devices (e.g., a touch screen display), a mouse, a stylus, oneor more keyboards, one or more buttons (e.g., ON/OFF buttons and/orYES/NO buttons), one or more microphones, and/or one or more cameras(e.g., cameras that are used to detect gestures that can trigger one ormore operations by the computing device 200). Further, the one or moreinput devices 230 can be used to provide input (e.g., a rule associatedwith a trigger that is received from a user input of a user) that can beused as part of invoking or performing one or more operations. Forexample, the one or more input devices 228 can be used to receive a ruleassociated with a trigger for the computing system 110 to perform anaction based on the activation of the trigger.

Although the one or more memory devices 202 and the one or more massstorage devices 224 are depicted separately in FIG. 2 , the one or morememory devices 202 and the one or more mass storage devices 224 can beregions within the same memory module. The computing device 200 caninclude one or more additional processors, memory devices, and/ornetwork interfaces, which may be provided separately or on the same chipor board. The one or more memory devices 202 and the one or more massstorage devices 224 can include one or more computer-readable media,including, but not limited to, non-transitory computer-readable media,RAM, ROM, hard drives, flash drives, and/or other memory devices.

The one or more memory devices 202 can store sets of instructions forapplications including an operating system that can be associated withvarious software applications or data. For example, the one or morememory devices 202 can store sets of instructions for one or moreapplications (e.g., one or more organizational applications and/or oneor more third-party applications) that are subject to one or moreapplication policies or utilize third-party integration data that can beconfigured, generated, and/or implemented by the computing device 200and/or one or more other computing devices or one or more computingsystems. In some embodiments, the one or more memory devices 202 can beused to operate or execute a general-purpose operating system thatoperates on mobile computing devices and/or and stationary devices,including for example, smartphones, laptop computing devices, tabletcomputing devices, and/or desktop computers.

The software applications that can be operated or executed by thecomputing device 200 can include applications associated with thecomputing system 110, the remote computing system 130, and/or the one ormore computing devices 152 that are depicted in FIG. 1 . Further, thesoftware applications that can be operated and/or executed by thecomputing device 200 can include native applications, web services,and/or web-based applications.

The one or more location devices 232 can include one or more devices orcircuitry for determining the position of the computing device 200. Forexample, the one or more location devices 232 can determine an actualand/or relative position of the computing device 200 by using asatellite navigation positioning system (e.g. a GPS system, a Galileopositioning system, the Global Navigation satellite system (GLONASS),the BeiDou Satellite Navigation and Positioning system, an inertialnavigation system, a dead reckoning system, based on IP address, byusing triangulation and/or proximity to cellular towers or Wi-Fihotspots, and/or beacons.

FIG. 3 depicts a block diagram of an example computing environment 300including multiple computing systems, according to example embodimentsof the present disclosure. Any of computing system 302, computing system306, computing system 310, computing system 320, computing system 322,or computing system 324 can include one or more attributes and/orcapabilities of the computing system 110, the remote computing system130, the one or more computing devices 152, and/or the computing device200. Furthermore, any of the computing system 302, the computing system306, the computing system 310, the computing system 320, the computingsystem 322, or the computing system 324 can be configured to perform oneor more operations and/or one or more actions that can be performed bythe computing system 110, the remote computing system 130, the one ormore computing devices 152, and/or the computing device 200.

As shown in FIG. 3 , the environment 300 includes the computing system302, an application 304, an application development environment 305, thecomputing system 306, an application 308, a cloud applicationdevelopment environment 309, the computing system 310, organizationaldata 311 (e.g., organizational data 203), one or more application(s)312, application policy data 313, integration data 314, data structures315, application object data 316, cloud development environment 317,custom language processing engine 318, computing systems 320, 322, 324,and third-party applications 330, 332, 334.

In an embodiment, the computing system 302, the computing system 306,the computing system 310, the computing system 320, the computing system322, and/or the computing system(s) 324 can be configured to communicatedirectly and/or via a communication network (e.g., the network 102depicted in FIG. 1 ). In one embodiment, the computing system 302includes an application 304 that is stored and/or operates on thecomputing system 302 and can communicate (e.g., send and/or receive dataand/or information) with one or more other computing systems includingthe computing system 306 and/or the computing system 310. Theapplication 304 can, for example, include a time and attendanceapplication that performs one or more operations on the computing system302 and includes time and attendance data 205 associated with anorganizational record that is stored as part of the organizational data311. In an example, a user associated with any computing system 302,306, 310 can use a portion of the organizational data 311 associatedwith their employee record to access a corresponding account associatedwith one or more of application 304, application 308, and/orapplication(s) 312.

In an embodiment, one or more application(s) 312 provide access to,utilize, support, and/or otherwise provide various interfaces orservices that enable other applications (e.g., application 304,application development environment 305, application 308, cloudapplication development environment 309, application(s) 312) and/orusers to perform various operations and activities involving one or morecustom computer languages. For example, a custom computer language(e.g., a custom query language) generally may provide users with asimplified set of computer instructions that align with or match auser's understanding of a functional or business environment, such as anorganization, business, industry, sector, etc. In some embodiments, eachof one or more custom computer languages is a user language that allowsusers with a basic understanding of a subject, topic, business area,organization, functional role, industry, sector, etc. to implementcustom computer instructions in terms that are familiar to the users,without knowledge of a complex computer programming language, withoutdependence on computer programmers, without being aware of or needing toknow the complexity of underlying data organization and storage, withoutneeding to understand, implement, and/or maintain a complex web of joinconditions across various sets of underlying data, etc.

In an embodiment, a custom computer language generally enables users ofany skill or level with a basic knowledge of a subject area to performone or more operations or activities associated with an application(e.g., any of applications 312). For example, a custom computer languagegenerally may enable a user to create, update, execute, and/or otherwiseimplement custom queries, reports, policies, workflows, triggers, and/orother functionality and operations associated with an application. Insome embodiments, a custom computer language enables a user to utilizeand perform various operations involving organizational data 311. Forexample, one or more applications associated with an organizational datamanagement system or any other types of applications (e.g., applications312) generally may provide a custom computer language allowing users toperform operations based on the structure and/or relationshipsassociated with organizational data 311.

In an embodiment, a custom computer language may allow a user to usesimplified terms to query organizational data 311. In one example, acustom computer language may allow a user to obtain the name of anemployee's manager with the following example query: “ORG (John Smith,Manager)”, which may return “Jane Jones” as the manager of the employee.As such, a custom computer language for an application may allow a userto use simplified and familiar terms without needing to understandcomplex interrelationships between various types of data stored acrossone or more different databases and/or other types of data stores.Further, a custom computer language generally may be processed by one ormore applications (e.g., application(s) 312 associated with anorganizational data store) so that users do not have to specify datajoins when performing various operations involving organizational data311.

In an embodiment, a custom computer language is based on and/orotherwise associated with one or more data structures 315 associatedwith an application. For example, a custom computer language may bebased on, represent, describe, or otherwise be associated with an objectgraph data structure 315 (e.g., a master object graph, any one or moreportions of a master object graph, etc.) and/or any other types of datastructures 315 that describe the structure of an application and/or theunderlying data associated with an application. In an example, a customcomputer language is based on the structure of one or more applicationsand/or associated organizational data 311 of an organizational datamanagement system. For example, the structure of the one or moreapplications and/or the associated organizational data 311 may berepresented and described in one or more data structures 315 including,but not limited to, one or more independent and/or interrelated objectgraph data structures 315. In various embodiments, an application (e.g.,one of application 312) and/or another supporting application used inassociation with the application can utilize object graph datastructures 315 to process and perform various underlying operationsassociated with custom computer language instructions.

In an embodiment, the computing system 302 includes an applicationdevelopment environment 305 that provides users with access to and/oroperations associated with one or more computer languages including, butnot limited to, a custom computer language. For example, the applicationdevelopment environment 305 can be associated with one or moreapplications of an organizational data management system that stores andmanages various types of organizational data 311. In an example,application development environment 305 generally may be an application(e.g., application 304) or portion of an application that enables a userto perform various operations involving organizational data 311 of anorganizational data management system using a custom computer language.For example, application development environment 305 generally mayenable a user to create, update, execute, and/or otherwise implementcustom rules associated with triggers, actions performed based on anactivation of a trigger, and/or other functionality and operationsassociated with one or more applications of an organizational datamanagement system.

In various embodiments, any one or more parts of the applicationdevelopment environment 305 may run, for example, on a computing system(e.g., computing system 302) and/or in association with information,applications, and/or services on another computing system (e.g.,computing system 310). For example, application development environment305 may utilize organizational data 311, application(s) 312, applicationpolicy data 313, integration data 314, data structures 315, and/orapplication object data 316 available from another computing system(e.g., computing system 310, one or more computing systems associatedwith an organizational data management system, etc.). Applicationdevelopment environment 305 also may include a query processing engine(not shown), computer instruction compiler (not shown), computerinstruction generator (not shown), and/or other specialized computersoftware for performing operations associated with providing triggers ina system of record (e.g., based on computer instructions in a customcomputer language provided by the system of record). Applicationdevelopment environment 305 also may utilize or work in conjunctionwith, in whole or in part, cloud development environment 317 and customlanguage processing engine 318 (including, for example any computerinstruction compiler (not shown) and/or computer instruction generator(not shown) associated with custom language processing engine 318),and/or other features and or operations available from another computingsystem (e.g., computing system 310, one or more computing systemsassociated with an organizational data management system, etc.).

In an embodiment, application development environment 305 can include auser interface (e.g., an editor) that allows users to enter, define,edit, check, store, schedule, execute, and/or perform any otheroperations associated with creating, viewing, maintaining, and/orutilizing computer instructions in a custom computer language. In someembodiments, application development environment 305 includes a textualeditor that enables users to enter and manipulate computing instructionsin a custom computer language. In some examples, a textual editor of theapplication development environment 305 may assist users withconstructing various types of statements in a custom computer language.For example, the textual editor may provide syntax highlighting in acustom computer language, intelligent completion of keywords orstatements in a custom computer language, automated hints and examples,various types of pop-up information to assist a user in writing orediting instructions in a custom language, visual notification of syntaxor other errors, suggested correction of syntax or other errors,automatic suggestion and/or population of objects and/or functions, etc.In some examples, automation and other assistance provided by a textualeditor of the application development environment 305 may be based onand may actively utilize one or more data structures 315 (e.g., anobject graph based on organizational data 311) associated withimplementation of a custom computer language.

In an embodiment, the computing system 310 includes one or moreapplication(s) 312 that can perform one or more operations on thecomputing system 310 and can communicate data and/or information withany one or more computing systems, including the computing system 302and/or the computing system 306, or any one or more computing devices.The application(s) 312 can, for example, include an employee managementapplication that operates on the computing system 310 and accesses theorganizational data 311, which can include one or more organizationalrecords associated with the names of organization employees and therespective employment status for each of the employees (e.g., anemployee's position or role within the organization, an organizationaldepartment associated with the employee, etc.). A user (e.g., aprivileged user, such as a manager or administrator with the authorityto access and/or modify the organizational data 311) associated with thecomputing system 306 can, for example, access and/or modify theorganizational data 311 to reflect when an employee receives a promotionor a raise, changes to a different department, is added to one or morenew teams, is assigned new computer hardware or other equipment, etc.

The one or more application(s) 312 can perform one or more operations onthe computing system 310 and can communicate data and/or informationwith one or more computing systems, including the computing system 302and/or the computing system 306, or any one or more computing devices.The application(s) 312 can, for example, include an administrative orother type of system application to manage one or more aspects of theapplication(s) 312 including, but not limited to, installing,configuring, maintaining, updating, integrating, automating and/orperforming one or more other operations associated with theapplication(s) 312 on the computing system 310 and that can manage oneor more aspects of one or more other applications on different systemsand devices, which may include the application 304 and/or theapplication 308.

In some embodiments, the application(s) 312 can include one or morethird-party applications that are stored and/or perform operations onthe computing system 310. Further, the application(s) 312 can retrievedata and/or information associated with and/or operate in cooperationwith applications external to the computing system 310 (e.g., thecomputing system 302 and/or the computing system 306). Theapplication(s) 312 can also use (e.g., access, modify, and/or control)the organizational data 311. For example, the application(s) 312 can usethe organizational data 311 that is associated with the application 304to perform one or more operations using the application 308 that is onthe computing system 306.

In an embodiment, the computing system 306 includes a cloud applicationdevelopment environment 309. For example, the cloud applicationdevelopment environment 309 generally may be a local instance of anonline integrated development environment (e.g., a cloud developmentenvironment 317) provided by one computing system (e.g., computingsystem 310) that is accessed from a web browser and/or any other type ofapplication 308 on another computing system (e.g., computing system306). For example, the cloud application development environment 309 canbe associated with one or more applications of an organizational datamanagement system that stores and manages various types oforganizational data 311. In an example, cloud application developmentenvironment 309 generally may be an application (e.g., application 308)or portion of an application that enables a user to perform variousoperations involving organizational data 311 of an organizational datamanagement system using a custom computer language. For example, cloudapplication development environment 309 generally may enable a user tocreate, update, execute, and/or otherwise implement custom queries,reports, policies, workflows, triggers, rules, group assignments, and/orother functionality and operations associated with one or moreapplications of an organizational data management system.

In various embodiments, any one or more parts of the cloud applicationdevelopment environment 309 may run, for example, on a computing system(e.g., computing system 306) and/or in association with information,applications, and/or services on another computing system (e.g.,computing system 310). For example, cloud application developmentenvironment 309 may utilize organizational data 311, application(s) 312,application policy data 313, integration data 314, data structures 315and/or application object data 316 available from another computingsystem (e.g., computing system 310, one or more computing systemsassociated with an organizational data management system, etc.). Cloudapplication development environment 309 also may include a queryprocessing engine (not shown), computer instruction compiler (notshown), computer instruction generator (not shown), and/or otherspecialized computer software for performing operations associated withproviding triggers in a system of record (e.g., based on computerinstructions in a custom computer language provided by the system ofrecord). Cloud application development environment 309 also may utilizeor work in conjunction with, in whole or in part, cloud developmentenvironment 317 and custom language processing engine 318 (including,for example any computer instruction compiler (not shown) and/orcomputer instruction generator (not shown) associated with customlanguage processing engine 318), and/or other features and or operationsavailable from another computing system (e.g., computing system 310, oneor more computing systems associated with an organizational datamanagement system, etc.).

In an embodiment, cloud application development environment 309 caninclude an editor that allows users to enter, define, edit, check,store, schedule, execute, and/or perform any other operations associatedwith creating, viewing, maintaining, and/or utilizing computerinstructions in a custom computer language. In some embodiments, cloudapplication development environment 309 includes a textual editor thatenables users to enter and manipulate computing instructions in a customcomputer language. In some examples, a textual editor of the cloudapplication development environment 309 may assist users withconstructing various types of statements in a custom computer language.For example, the textual editor may provide syntax highlighting in acustom computer language, intelligent completion of keywords orstatements in a custom computer language, automated hints and examples,various types of pop-up information to assist a user in writing orediting instructions in a custom language, visual notification of syntaxor other errors, suggested correction of syntax or other errors,automatic suggestion and/or population of objects and/or functions, etc.In some examples, automation and other assistance provided by a textualeditor of the cloud application development environment 309 may be basedon and may actively utilize one or more data structures 315 (e.g., anobject graph based on organizational data 311) associated withimplementation of a custom computer language.

In an embodiment, cloud application development environment 309 caninclude a visual editor (e.g., either with or without a textual editor)to, for example, create, view, maintain, and/or utilize computerinstructions in a custom computer language. For example, the visualeditor may allow users to build, modify, and perform other operationsassociated with instructions in a custom computer language via a dragand drop and/or any other types of graphical user interfaces (e.g., asoftware wizard or setup assistant user interface that presents a userwith a sequence of dialog boxes or other types of interfaces that guidethe user through a series of steps in generating one or more portions ofan application). Further, a visual editor generally also may providedropdown lists, enhanced browsing, and other visual access to featuresand operations of a custom computer language, and/or one or more datastructures 315 associated with a custom computer language or relatedapplication to construct, edit, and/or otherwise utilize instructions ina custom computer language. In some examples, the cloud applicationdevelopment environment 309 may provide a textual editor in combinationwith the visual editor to allow users to view, utilize, and alternatebetween both textual and visual editors of a custom query language, forexample, as part of the same user interface.

The computing system 310 includes the application policy data 313 whichcan be implemented on the computing system 310 and can be used toperform one or more operations associated with implementing anapplication policy associated with the organizational data 311 and/orone or more applications including the application 304, the application308, and/or application(s) 312. The application 304, the application308, and/or application(s) 312 can include one or more third-partyapplications that are separate from, that are operated separate andapart from, and that are not affiliated with the organization thatmanages, owns, controls and/or maintains the organizational data 311 oran associated organizational data management application on thecomputing system 310, and/or that determines or implements anapplication policy associated with the application policy data 313. Inone example, third-party applications can be differentiated fromorganizational applications that, for example, are inherent to, are apart of, or otherwise operate directly or as part of an organizationaldata management application, system, services, and/or platform.

The application policy data 313 can include one or more rules thatdetermine how one or more applications including, for example, one ormore third-party applications or organizational applications areaccessed, modified, and/or controlled. For example, the applicationpolicy data 313 can use the organizational data 311 that is associatedwith the application 304 to perform one or more operations on theapplication(s) 312 and/or the application 308. Also, the applicationpolicy data 313 can use the organizational data 311 that is associatedwith the application(s) 312 to perform one or more operations on theapplication 304 and/or the application 308. By way of further example,the application policy data 313 can use the organizational data 311 thatis associated with the application 308 to perform one or more operationson the application 304 and/or the application(s) 312. In someembodiments, the application policy data 313 can determine how acombination of one or more organizational applications (e.g.,applications owned and controlled by an organization that owns andcontrols the organizational data 311 and/or applications provided withor as part of an organizational data management system used by theorganization as a system of record for maintaining the organizationaldata 311, etc.) and/or one or more third-party applications areaccessed, modified, configured, and/or controlled.

The computing system 310 includes the integration data 314, which canreside on the computing system 310 and can be used, for example, toperform one or more operations that integrate the organizational data311 and associated activities based on the organizational data 311across one or more different computing systems (e.g., such as computingsystems 302, 306, and 310) and/or applications (e.g., such asapplications 304, 308, and 312). For example, the integration data 314can be used to integrate and synchronize organizational data 311 and/orassociated operations across an organizational data managementapplication or system (e.g., a system of record for organization data311) and each of one or more separate third-party applications thatutilize organizational data 311 and/or perform operations based onorganizational data 311.

In an embodiment, the integration data 314 can include configurationinformation associated with integrating and synchronizing data among oneor more computing systems and/or applications. For example, theintegration data 314 can include information that enables integrationbetween an organizational application (e.g., an application 312associated with an organizational data management system of record forthe organizational data 311) and each of one or more separatethird-party applications (e.g., application 304, application 308, etc.)that use or perform operations based on the organizational data 311).Such integration data 314 may include, but is not limited to,information indicating and/or describing various data that enablesperformance of an integration between applications or systems, such asan integration type information (e.g., flat file, applicationprogramming interface or “API”, webhook, system call, etc.), securityinformation (authentication information, encryption information, etc.)technical information (e.g., file locations, call information, systemnaming, application naming, IP address information, port information,etc.), integration flow information (e.g., push, pull, bidirectional,etc.), integration activation (e.g., scheduling or timing information,event information, one or more rules, one or more triggers or criteria,etc.), processing information (e.g., data mappings between the sourceand target, data validation rules, data transformations, error handling,etc.), and/or any other information used in defining, configuring,and/or integrating an application with each of any number of third-partyapplications and/or systems.

The computing system 310 includes the data structures 315, which can beimplemented on the computing system 310 and used to perform operationsinvolving the organizational data 311 including, but not limited to,performing integration and synchronization of the organizational data311 with one or more different third-party applications and/or systems,generating and processing computer instructions across one or moredifferent systems based on the organizational data 311, etc. In anembodiment, the data structures 315 generally can include informationabout the properties or attributes of each of one or more entitiesassociated with the organizational data 311. Data structures 315 alsocan include information describing relationships associated with one ormore entities associated with the organizational data 311 (e.g.,explicit relationships defined between entities, virtual relationshipsdetermined based on various attributes and data associated withentities, etc.). In some embodiments, the data structures 315 generallycan be used in validating and processing the organizational data 311and/or other information received from third-party applications and/orsystems. The data structures 315 also can be used in association withperforming or otherwise carrying out one or more operations involvingthe organizational data 311 including, but not limited to, processingrequests, validating queries, generating computer instructions,processing computer instructions, generating workflows, executingworkflows, generating triggers, evaluating trigger conditions,performing trigger operations, creating reports, running reports, etc.

In an embodiment, the data structures 315 can include one or more objectgraphs and/or any other types of data structures that provideinformation about entities, relationships, rules, constraints, and/orany other aspects of managing the organizational data 311. For example,such object graphs can include one or more nodes representing entitiesassociated with the organizational data 311 and one or more edges thatconnect and represent relationships between the nodes (e.g., explicitedges defining relationships between entities and data, virtual edgesinferring relationships between entities and data, etc.). The datastructures 315 can also include organizational data and/or associatedmetadata. In addition, the data structures 315, together or alone,generally may represent one or more structural aspects of an applicationor system (e.g., such as an organizational data management system thatis a system of record for organizational data 311 of an organization).In various examples, the data structures 315 generally may be used tosupport various operations performed by a system of record including butnot limited to performing one or more operations for providing triggersin the system of record. For example, the data structures 315 alone orin combination with configuration data and/or one or more types ofinformation) may be used to generate new instructions in a computerlanguage, which may include a custom computer language provided tousers. Further, such new instructions generally may include one or moreoperations (e.g., one or more underlying data joins) that are identifiedand included in the generated instructions based on analyzinginstructions received in the custom computer language in view of thedata structures 315.

The computing system 310 includes the application object data 316, whichcan be implemented on the computing system 310. For example, theapplication object data 316 can include any information that is used toimplement any type of application object or data structure for anapplication object that may store, reference, utilize, and/or processdata. In an example, a system of record generally may supportapplication objects that include, but are not limited to, applicationtriggers, application reports, application workflows, application tasks,custom objects, and/or any other types of objects.

In an embodiment, application triggers generally may include applicationobjects that are referenced based on an event. For example, anapplication trigger may be referenced based on one or more internalapplication or system events (e.g., occurring within a system of record,etc.), based on one or more external application or system events (e.g.,occurring outside of a system of record, occurring in a third-partyapplication integrated with a system of record, etc.), or based on acombination of one or more internal application or system events and oneor more external application or system events.

Generally, an application trigger may include one or more conditions tobe evaluated when the application trigger is referenced by anapplication or system. For example, such conditions may include, but arenot limited to, conditional statements that test one or more aspects oforganizational data 311. In one example, when the application trigger isreferenced and the conditions of the application trigger are satisfied(e.g., evaluate to true), then one or more operations associated withthe trigger are automatically executed. For example, the one or moreoperations associated with the application trigger may cause anapplication or system to perform one or more operations internally, maycause the application or system to perform one or more operations inassociation with an external application or system (e.g., based on anintegration, etc.), or may cause the application or system to performone or more operations internally and to perform one or more operationswith an external application or system.

In an embodiment, application reports generally may include any computerinstructions that are executed by an application or system to obtain acollection of data or the resulting collection of data. Applicationworkflows generally may refer to an object or objects that define asequence of steps for automating a process associated with anapplication or system. Application tasks generally may be objects thatare used to define one or more actions or pieces of work to be performedby a user or group of users. Application tasks may be assigned ordelegated to one or more users or groups of users. Application tasksalso may include information related to a particular task (e.g., startdate, due date, etc.). Applications and systems may allow a user of anorganization to create custom objects, which may define one or morecustom object attributes, custom object operations, and relationshipswith entities provided by an application or system and/or other customobjects defined for an organization.

The computing system 310 includes the cloud development environment 317,which can be implemented on the computing system 310, for example, toprovide users with access to an environment for writing, building,testing, executing, and/or performing any other types of operationsinvolving instructions in a custom computer language. In an embodiment,the cloud development environment 317 may include and/or performoperations associated with the custom language processing engine 318and, for example, any computer instruction compiler (not shown) and/orany computer instruction generator (not shown) associated with customlanguage processing engine 318. In addition, the cloud developmentenvironment 317 may run on one computing system (e.g., computing system310) and provide one or more services to applications running on anothercomputing system (e.g., application development environment 305 oncomputing system 302, cloud application development environment 309 oncomputing system 306, etc.). Further, the cloud development environment317 may perform any one or more of the operations previously describedwith respect to application development environment 305 and/or cloudapplication development environment 309. Similarly, applicationdevelopment environment 305 and/or cloud application developmentenvironment 309 may perform any one or more of the operations describedin association with cloud development environment 317.

The computing system 310 includes the custom language processing engine318, which can be implemented on the computing system 310 and used toperform operations associated with processing requests based oninstructions in a custom computer language. In various embodiments, thecustom language processing engine 318 may receive requests forprocessing that include one or more instructions in a custom computerlanguage. For example, such requests may be received from one or moredifferent computing systems (e.g., computing system 302, computingsystem 306, computing system 310, etc.) and/or one or more differentapplications (e.g., application 304, application development environment305, application 308, cloud application development environment 309,application(s) 312, cloud development environment 317, etc.). Customlanguage processing engine 318 may be associated with or utilize one ormore computer instruction compilers (not shown) and/or one or morecomputer instruction generators (not shown), which for example, may beseparate, part of, or integrated with the custom language processingengine 318.

In an embodiment, a computer instruction compiler of the custom languageprocessing engine 318, can be implemented on the computing system 310and used to perform operations associated with analyzing instructions ina custom computer language including, but not limited to, parsing andanalyzing custom computer language instructions based on one or morerules associated with a custom computer language and/or associated datastructures 315, for example, to determine whether any error exists inthe custom computer language instructions, to identify one or moreerrors in the custom computer language instructions, to returninformation about one or more of the identified errors, to determinewhen the custom computer language instructions are free from error, etc.The computer instruction compiler of the custom language processingengine 318 may include or be associated with a computer instructiongenerator (not shown) that generates one or more new instructions in acomputer language, such as a custom computer language.

In an embodiment, a computer instruction generator of the customlanguage processing engine 318, can be implemented on the computingsystem 310 and used to generate one or more new instructions in a customcomputer language. For example, the computer instruction generator maygenerate instructions in a custom computer language for execution basedon configuration of one or more application objects and/or dataassociated with such application objects (e.g., application triggers,application reports, application workflows, application tasks, customobjects, etc.). In one example, such instructions in the custom computerlanguage may be executed by an application of a system of record toperform one or more operations involving the system of record and/or anythird-party application integrated with the system of record. In oneexample, the computer instruction generator may generate instructions inany computer language, for example, to be executed in association withany application or computing system. For example, the computerinstruction generator may generate instructions in a different computerlanguage for execution with one or more other applications 312 or datastores (not shown) on or associated with computing system 310 and/or oneor more other applications (e.g., application 304, application 308,third-party application 330, third-party application 332, third-partyapplication 334) associated with other computing systems (e.g.,computing system 302, computing system 306, computing system 320,computing system 322, computing system 324).

In various examples, third-party applications (e.g., third-partyapplication 330, third-party application 332, third-party application334) generally may be any type of computer application referenced withinthe present disclosure or otherwise available. In some examples, eachthird-party application may be associated with a respective computingsystem (e.g., computing system 320, computing system 322, computingsystem 324). In some examples, each third-party application may beassociated with one or more different computing systems. In someexamples, multiple third-party applications may run on each of one ormore different computing systems.

In an embodiment, an application store computing system (not shown)provides an organization with access to multiple different integrationapplications (not shown) for integrating organizational data 311 and/orassociated processes with and across various different applicationsand/or systems (e.g., application(s) 312, third-party application 330,third-party application 332, third-party application 334, etc.). Anapplication store computing system also may provide an organization withone or more other types of applications, including but not limited to,platform utility apps that provide additional functionality to anorganizational data management application or system, other apps thatmay include integration-related applications, and/or any other types ofapplications. Generally, the application store computing system mayprovide one or more various applications for a flat fee, based on asubscription purchase, for a fee based on usage, for a fee based on anumber of users, computing systems, processors, or any other criteria,as part of a limited trial, for free, and/or generally under any type ofarrangement. In an embodiment the application store computing system ismanaged and provided by the same party that provides an organizationaldata management system to organizations. For example, the integrationapplications provided by the application store computing systemgenerally may be specialized for use with the organizational datamanagement system (e.g., and not end-user versions of applications thatwould be installed for general purpose use by end-users on end-userdevices or for use by end-users via cloud services or any other types ofservices).

In an embodiment, the integration applications generally can be anyapplication that allows an organization to manage any one or moreaspects associated with providing one or more corresponding end-userapplications to individual members (e.g., employees), teams, roles,departments, and/or any other grouping or categorization of individualsin an organization. For example, each of the integration applicationscan be used by an organization to control and automate various tasksassociated with provisioning, configuring, maintaining, and integratingthird-party applications. In some embodiments, one or more of theintegration applications can allow an organization to configureautomated assignment of a corresponding end-user application to one ormore individuals, user account creation, single sign-on setup,provisioning, installation, setup, and/or maintenance of correspondingend-user applications (e.g., third-party applications or otherapplications available for use by end users) provided to particularindividuals, groups, and/or one or more devices associated with suchindividuals or groups in the organization (e.g., via installation onrespective user devices, via a cloud application service available toend users, etc.).

In an embodiment, one or more of the integration applications canprovide integration of organizational data 311 and associated serviceswith one or more corresponding third-party applications (e.g.,application 304 on computing system 302, application 308 on computingsystem 306, application(s) 312 on computing system 310, third-partyapplication 330 on computing system 320, third-party application 332 oncomputing system 322, third-party application 334 on computing system324, etc.) that utilize and/or perform operations based onorganizational data 311. For example, each of the integrationapplications can provide one or more of user account creation, singlesign-on integration, user account suspension or removal, usermanagement, group management, user privileges, user data access, userdata control, template management, data integration, process automation,and/or any other types of integration between applications (e.g.,third-party applications or other applications) that are associated withorganizational data 311 of an organization.

In an embodiment, the integration applications and/or other applicationsprovided by the application store computing system may include, but arenot limited to, collaboration apps, support apps, design apps,development apps, finance and legal apps, human resources (HR) andbenefits apps, information technology (IT), device management, andsecurity apps, office management apps, sales and marketing apps,charitable apps, platform utility apps, and/or other apps. Generally,various different types of applications provided by the applicationcomputing system may be organized, categorized, grouped, presented,and/or otherwise offered in any type of arrangement, and thus are notlimited to any particular examples discussed herein, which are providedfor illustration purposes only.

In an embodiment, collaboration apps may include, for example, anyapplications that provide scheduling, communications, document sharingand management, electronic signature services, project management,productivity, and/or any other types of applications that facilitatework between individuals, groups, and/or parties.

In an embodiment, support apps may include, for example, anyapplications that provide services associated with customer support,technical support, issue reporting, issue management and escalation,tracking and managing help desk tickets, and/or any other types ofapplications that facilitate customer, business, and/or technologysupport.

In an embodiment, design apps may include, for example, any applicationsthat provide services associated with creating graphic designs, productdesigns, prototypes, drawings, graphical user interfaces, userexperiences, and/or any other types of applications that facilitate thecreation of designs, interfaces, and/or artistic works.

In an embodiment, development apps may include, for example, anyapplications that provide services associated with software development,software testing, source code control and management, source codescanning, application testing, process automation, cloud hosting andservices, system monitoring, error reporting and alerts, machinelearning, and/or any other types of applications that facilitateactivities associated with building, maintaining, or deploying softwareapplications.

In an embodiment, finance, operational, and legal apps may include, forexample, any applications that provide services associated withaccounting systems, budgeting systems, vendor management systems,payment systems, travel systems, expense management systems, supplychain systems, manufacturing systems, compliance and governance systems,vendor management systems, contract management systems, and/or any othertypes of applications and/or systems used to manage various aspects ofan organization.

In an embodiment, human resources (HR) and benefits apps may include,for example, any applications that provide services associated withrecruiting and hiring, temporary staffing, background checks, payrolland benefits, training and onboarding, retirement planning andcontributions, reward and bonus programs, employee training, learningmanagement systems, performance management, time and attendance, and/orsystems any other types of applications or systems associated withemployee-related activities.

In an embodiment, information technology (IT), device management, andsecurity apps may include, for example, any applications that provideservices associated with device management, technology, informationsecurity, password management, and/or any activities associated withmanaging applications, systems, devices, or associated technology.

In an embodiment, office management apps may include, for example, anyapplications that provide services associated with facilitiesmanagement, receptionist services, physical access, visitor access,catering services, office layout, office assignments, and or any othertypes of applications or systems associated with performing officemanagement.

In an embodiment, sales and marketing apps may include, for example, anyapplications that provide services associated with social media,analytics, advertising, event management, customer relationshipmanagement, content creation and distribution, public relations,business generation, campaign management, and/or any other types ofsimilar or related activities.

In an embodiment, charitable apps may include, for example, anyapplications that provide services associated with donations, charitablegiving, crowdfunding, etc.

In an embodiment, platform utility apps may include, for example, anyapplications from a provider that allow an organization to utilizesoftware applications, systems, or services that have been purchased orthat are otherwise available from the provider. For example, a providerof an organizational data management system can allow an organization toaccess and utilize standard services and/or enhanced services via one ormore of the platform utility apps. In some embodiments, the platformutility apps operate from and/or are directly integrated withapplications, systems, and/or services obtained from a provider. Forexample, such platform utility apps can allow one or more users of anorganization to customize a particular implementation or instance ofprovider software that is associated with the organization. In oneexample, one of the platform utility apps can allow the creation and/ormodification of one or more custom fields in association with one ormore entities, the creation and/or modification of one or morerelationships among the entities, the creation and/or modification ofone or more default system rules or custom rules, the addition and/oruse of custom fields, custom relationships and/or custom rules invarious workflows, triggers, tasks, reports, integrations, etc. In someembodiments, users may create and modify custom fields, relationships,rules, tables, entities, and any other various aspects of anorganizational data management system in a utility application orotherwise using a custom computer language provided by theorganizational data management system.

In an embodiment, other apps may include, for example, any types ofapplications that may be used by individuals and/or organizations. Theother apps may include, for example, any other category of integrationapplications and/or any other types of applications that can be executedby a computing system or device.

In an embodiment, authorized users of an organization with theappropriate privileges may access one or more services of theapplication store computing system directly, for example, via a website,web page, desktop application, mobile application, and/or any other typeof application to browse, view, search, compare, evaluate, download,install, configure, upgrade, uninstall, and/or perform any other typesof activities associated with the integration applications or any othertypes of applications provided via the application store computingsystem. In some embodiments, authorized users of an organization withthe appropriate privileges may access one or more services of theapplication store computing system indirectly, for example, throughanother application (e.g., application 312) and/or another computingsystem (e.g., computing system 310). In some embodiments, theapplication store computing system can be provided on the same computingsystem with other applications and services (e.g., running on computingsystem 310).

In an embodiment, any one or more users of an organization, such as anadministrator, manager, or one or more other users associated with aparticular role and/or one or more particular privileges each mayinstall and/or configure each of one or more different integrationapplications for use by the organization. For example, any such userwith the appropriate privileges may install one or more of theintegration applications for the organization on the computing system310 or any other computing systems or devices. Also, any such user withthe appropriate privileges may configure integration data 314 associatedwith each of one or more integration applications. In some embodiments,one user with the appropriate privileges may delegate authority to oneor more other users to perform installation and/or configuration of oneor more of the integration applications for an organization.

In an embodiment, an organizational data management system is providedvia at least one computing system to allow each of one or more differentorganizations to centrally manage their own organizational data 311. Forexample, the organizational data management system can be provided as acentralized system of record for storing and managing various types oforganizational data 311 of an organization. The organizational datamanagement system also can provide various types of integration acrossdifferent third-party applications that utilize, that perform processinginvolving or based on, and/or that are otherwise associated withorganizational data 311. The organizational data management system alsocan automate various processing based on the organizational data 311including, but not limited to the automation of processing performedacross various third-party applications based on the organizational data311. In various embodiments, the organizational data management systemcan be provided via one or more different computing systems, one or moredifferent applications, and/or via one or more different services, forexample, to one or more different organizations over a computer network.

In an embodiment, a separate instance of an organizational datamanagement system generally can be provided to each of one or moredifferent organizations, for example, to allow each organization toindependently configure, manage, and integrate their own instance of anorganizational data management system, and to secure and insulateorganizational data 311 from outside parties. For example, separateinstances of an organizational data management system generally may beprovided to different organizations using different computer hardwaredevices, different software applications, different instances ofsoftware applications running in an isolated space, different databases,physically partitioned databases, and/or in various other ways.

In an embodiment, an organizational data management system generallyenables organizations to efficiently manage organizational data 311 andassociated processing that occurs based on the organizational data 311.For example, an organizational data management system may be used as acentralized system of record that is integrated with other computingsystems and applications (e.g., third-party applications 330, 332, 334)that generate, utilize, process, and/or perform activities based onorganizational data 311. Such integration generally allows anorganizational data management system to orchestrate and automateprocessing of organizational data 311 and associated activities acrossnumerous different applications that are not in communication orcoordination with one another. In some embodiments, an organizationaldata management system can allow appropriate users (e.g., authenticated,authorized, privileged, etc.) of an organization to, for example, manageorganization information, settings of an organizational data managementsystem, onboarding of employees, offboarding of employees, employeeinformation, organizational structure and locations, employee placementin departments and teams, workflows and tasks, reports, documents,and/or any other information associated with organizational data 311.

In an embodiment, an organization uses an organizational data managementsystem that allows the organization to manage organizational data 311and activities performed based on the organizational data 311. In someembodiments, an organization can install and use an organizational datamanagement system on a computing system (e.g., computing system 310 orany other computing system) that is dedicated to the organization. Also,an organizational data management system can comprise any one or more oforganizational data 311, application(s) 312, application policy data313, integration data 314, data structures 315, application object data316, cloud development environment 317, custom language processingengine 318, and/or any other information associated with managing,processing, and performing activities associated with organizationaldata 311. In addition, an organizational data management system mayprovide and utilize its own custom computer language that allowsbusiness users to access and perform various operations using simplifiedcomputer instructions based on structure of organizational data 311.Further, an organizational data management system may provide variousfeatures and user interfaces to configure and to automate the executionof triggers in the custom computer language to perform variousactivities within the organizational data management system and acrossone or more other applications (e.g., third-party application 330,third-party application 332, third-party application 334) running on oneor more different computing systems (e.g., computing system 320,computing system 322, computing system 324).

In an embodiment, an organizational data management system may beprovided by another party for use by an organization. For example,another party such as a software application provider may host orotherwise provide a separate instance of an organizational datamanagement system to each of one or more different organizationsallowing each organization to independently manage their ownorganizational data 311. In such embodiments, each separate instance ofan organizational data management system provided to an organization canrespectively comprise any one or more of organizational data 311,application(s) 312, application policy data 313, integration data 314,data structures 315, application object data 316, and/or any otherinformation associated with managing, processing, and performingactivities associated with organizational data 311 for the particularorganization. As such, an organizational data management system may be acloud-based platform that maintains organizational data 311 and otherinformation associated with each of one or more different organizationsand that allows each of the different organizations to independentlymanage their own respective organizational data 311 and relatedprocesses independently from any other organization.

FIG. 4 depicts a flow diagram of an example method 400 for performingactions specified by a rule in an organizational management platform,according to example embodiments of the present disclosure. One or moreportions of the method 400 can be executed and/or implemented on one ormore computing devices or computing systems including, for example, thecomputing system 110, the remote computing system 130, the one or morecomputing devices 152, the computing device 200, the computing system302, the computing system 306, and/or the computing system 310. Inaddition, one or more portions of the method 400 can be executed orimplemented as an algorithm on the hardware devices or systems disclosedherein. FIG. 4 depicts steps performed in a particular order forpurposes of illustration and discussion. As such, those of ordinaryskill in the art, using the disclosures provided herein, will understandthat various steps of any of the methods disclosed herein can beadapted, modified, rearranged, omitted, and/or expanded withoutdeviating from the scope of the present disclosure.

According to some embodiments, the computing system of method 400 canimplement an organizational management platform to manage applications(e.g., application 304, application 308) for an organization. Thecomputing system can include one or more databases (e.g., one or morememory devices 116, one or more memory devices 136, one or more memorydevice 156, one or more memory devices 202) that collectively storeorganizational data (e.g., data 118, data 138, data 158, organizationaldata 203, organizational data 311) associated with the organization. Theorganizational data can include an object graph data structurecomprising a plurality of data objects associated with theorganizational data.

At 402, the computer system can receive a rule associated with atrigger. The rule can include a condition for activation of the trigger.The rule can be received from a user interface, such as a graphical userinterface. In some instances, the user interface can present a pluralityof rules for a user to select. The selection of the rule from theplurality of rules can be received from a user input of the user.Additionally, the user interface can present a plurality of actions tobe performed for each rule when a trigger associated with the rule isactivated. In some examples, a user can select, using the userinterface, a rule associated with a trigger, and then select an actionbased on the activation of the trigger. The rule associated with thetrigger and the condition for activation of the trigger can be stored asrule data 204.

In one example, a user can select a rule that will send an alert to amanager of an employee if the employee is on pace to be working morethan 40 hours in a current week. In this example, the action performedby the computer system includes sending the alert to the manager, andthe trigger associated with the rule is the determination whether theemployee is on pace to be working more than 40 hours in the currentweek. Continuing with this example, the computing system can determinethat the employee is expected to work eight hours on Friday and theemployee has already worked more than 32 hours this current week. Thecomputing system can send an alert to the manager of the employee whenthe employee has already worked 32 hours.

In some embodiments, the computer system may provide one or more typesof user interfaces that allow users of an organization to configurerules and triggers associated with an application. For example, thecomputer system may provide any one or more different types of commandline interfaces, editor interfaces, graphical user interfaces, and/orwizard user interfaces (e.g., alone or in combination) that allow usersto write, create, edit, modify, submit, test, store, deploy, disable,enable, execute and/or perform any other actions to create and utilizerules and triggers associated with an application.

In some embodiments, the computer system provides graphical userinterfaces that enable a user to configure various aspects of the rulesand triggers received at 402. For example, one or more graphical userinterfaces may enable a user to configure conditions and operationsassociated with a rule and respective triggers associated with the rule.A graphical user interface may generate instructions for a rule or atrigger in a computer language, such as a custom computer language formanaging organizational data 311. Such generated instructions then maybe utilized by an organizational data management system that supportsthe custom computer language to implement the rules and triggers.

In some embodiments, a trigger generally may be described as a dataobject in the object graph data structure that performs one or moreactions in response to or based on an event, a condition, or acombination of an event and a condition. As an example, a trigger mayperform one or more operations based on a change to one or more datafields. A trigger also may perform one or more operations when a set ofconditions associated with the trigger are satisfied. A trigger also mayperform one or more operations, for example, based on evaluatingconditions of a trigger in response to an event and determining that theconditions associated with a trigger are satisfied. In various examples,when the conditions of a trigger are satisfied, then the trigger isactivated, causing one or more operations associated with the trigger tobe executed.

At 404, the computer system can generate a dependency map 209 associatedwith the rule. The dependency map 209 can have one or more dependentdata objects from the plurality of data objects that are associated withthe rule. The dependency map 209 once generated can be stored in thedata structures 208. The dependency map 209 associated with the rule caninclude information (e.g., trigger, condition for activation of therule) associated with the rule, one or more relationships involving oneor more of the entities (e.g., objects, records) and the rule, one ormore data values associated with each of one or more of the entitiesand/or one or more of the relationships, one or more functions and/oroperations that may be applied to each of one or more of the entitiesand/or one or more of the relationships, any other data or metadatadescribing or otherwise defining structure and/or rules associated withone or more of the entities and/or one or more of the relationships,etc.

The dependency map 209 can include object data associated with, but notlimited to, individuals (e.g., employees, vendors, independentcontractors), departments, teams, roles, groups, locations, offices,documents, tasks, reports, accounts, devices, applications, end-userapplications, licenses, workflows, alerts, time information, attendanceinformation and/or any other types of entities representing or relatedto managing organizational data (e.g., organizational data 203).

The dependency map 209 also can define various relationships among thevarious entities associated with rule. For example, the dependency map209 may define relationships such as an employee being assigned to adepartment, a team, a primary location, a secondary location, acomputing device, and any other relationships provided by theorganizational data 203.

The dependency map 209 can include object graphs (e.g., based on anobject graph data model) providing information about entities,relationships, and/or any other aspects relating to the definition,structure, and rules associated with organizational data (e.g.,organizational data 203). The dependency map 209 also can include anyone or more other types of data structures (e.g., with or without theuse of object graphs) that provide information about entities, entityattributes, entity attribute categories, relationships, and/or any otheraspects of the definition, structure, and/or rules associated withorganizational data.

In some instances, a dependency map 209 generated by the computingsystem 110 can be part of the data structures 208. The dependency map209 can define various relationships among the various entities (e.g.,data object) and the rule received by the computing system 110. Therelationships can be defined by the computing system 110 based on theobject graphs and the application object data 210.

At 406, the computer system can detect a change in a first data objectfrom the plurality of data objects. In some instances, the first dataobject can be associated with the employee records of a first employeein the organization. The plurality of data objects can be the employeerecords of each employee in the organization. The employee records caninclude metadata (e.g., attributes) associated with the employee. Thecomputer system can detect a change in the employer record of the firstemployee when the metadata changes. For example, a computing system canmaintain data objects associated with an employee. The computer systemcan detect a change in the data object associated with the firstemployee when the first employee clocks into work or when the firstemployee increases the amount of time worked by a certain amount.

In some instances, the change in the first data object detected at 406can include a change to respective values associated with one or moreattributes of an entity in organizational data 311, or a change to oneor more values associated with a formula or other type of calculationassociated with organizational data 311. For example, any change toorganizational data 311 may initiate a determination at 408 and 410 todetermine whether such change is associated with and/or affects adependency existing in the organizational data 311. In one example, anapplication may reference one or more data structures 315 (e.g., anobject graph) associated with an application based on a modification toorganizational data 311 to determine one or more dependencies in theorganizational data 311 to be updated based on the modification. Forexample, an update to an attribute value may be used to identify andupdate other dependent attributes, custom fields, and formulasassociated with the updated attribute.

In some instances, the change in the first data object detected at 406may include any user-generated change (e.g., event), such as a commandor action taken by a user to generate the change. Additionally, adetected change of the first data object can include a scheduled eventthat runs at a particular time or at one or more recurring times. Forexample, a system may periodically determine whether to evaluate a groupof one or more triggers based on scheduling information. In one example,evaluation of a certain group of one or more triggers may be initiatedbased on a date change. Moreover, the detected change of the first dataobject can also include an internal change that occurs in anapplication. For example, internal change associated with an applicationmay include, but are not limited to, progression of a task, completionof a task, assignment of a task, update of a task status, the evaluationof another trigger, the firing of another trigger, approval of arequest, denial of a request, generation of one or more alerts,transmission of one or more alerts, generation of one or more messages,transmission of one or more messages, any update(s) to organizationaldata 311, and/or any other type of internal event associated with anapplication.

At 408, the computer system can determine a dependency between the ruleand the first data object based on the dependency map. The dependencymap generated at 404 includes one or more data objects from theplurality of data objects that are associated with the rule. Forexample, it is determined that a dependency between the rule and thefirst data object exists when the one or more data objects includes thefirst data object. In some instances, the dependency between the ruleand the first data object can be further based on the condition foractivation of the trigger.

In some instances, once the computer system detects a change in thefirst object data at 406, then an application (e.g., time and attendanceapplication) associated with a system of record may analyze the detectedchange and identify one or more triggers associated with the rule todetermine a dependency between the rule and the first data object. Theanalysis can be based on the dependency map generated at 404. Forexample, the application may analyze a source of the detected change,nature of the detected change, information associated with the detectedchange, organizational data 311 in the system of record, applicationpolicy data 313, integration data 314, data structures 315, applicationobject data 316, and/or any other information that may be available todetermine a dependency between the rule and the first data object. Theapplication may determine one or more triggers associated with the ruleto be dependent on the detected change. Also, the application maydetermine whether to evaluate conditions associated with activation ofthe trigger based on analyzing available information associated with thedetected change. The application can identify one or more triggers torun based on the change detected at 406, causing a determination at 410of the conditions associated with the activation of the trigger.

At 410, the computer system can determine that the condition for theactivation of the trigger has been satisfied based on the detectedchange in the first data object. In some instances, the dependencybetween the rule and the first data object can be further based on thecondition for activation of the trigger. For example, if the conditionfor the activation of the trigger is that the trigger can only beactivated during the workweek and it is not the workweek, then thecondition is not satisfied. Alternatively, if the condition foractivation of the trigger is that the value associated with the firstdata object exceeds a threshold value, and the detected change in thefirst data object does exceed the threshold value, then the condition issatisfied.

In some instances, the computer system can evaluate one or moreconditions for activation of the trigger. The computer system canevaluate a set of one or more conditions of the trigger based on thechange in the first data object detected at 406. For example, a triggermay be run based on an event by initiating evaluation of one or moreconditions associated with the trigger. The trigger may be a data objectassociated with corresponding application object data 316 where thetrigger is enabled for use with the time and attendance application. Thetrigger may also be a data object associated with corresponding datastructures 315. Conditions of a trigger can include one or moreconditions that can be evaluated to determine a result. For example, atrigger condition may be expressed as a single expression, which in someexamples may include one expression or any number of expressions thatare connected or joined using logical operators including, but notlimited to “and” and “or” operators. A trigger condition also may beexpressed as a combination of multiple, separate expressions that eachare evaluated individually and then in combination based on a result ofeach individual evaluation. As an example, five separate conditionsassociated with a trigger may be evaluated individually to determine anoverall result for the group of conditions. Conditions of a trigger alsomay be organized or grouped in any fashion. In various examples, triggerconditions can be based on any one or more aspects of organizationaldata 311 or other information maintained by a system of record and/orbased on any one or more aspects of organizational data 311 or otherinformation associated with any application (e.g., any third-partyapplication).

At 412, the computer system can perform an action associated with theactivation of the trigger based on the determination that the conditionfor the activation of the trigger has been satisfied. In some instances,the action performed at 412 can include an alert that is transmitted toa user device of a user (e.g., employee, manager of organization). Forexample, the alert can be transmitted by computing system 110 to remotecomputing system 130 or one or more computing device 152. In anotherexample, the alert can be transmitted by computing system 302 tocomputing system 306, 320, 322, or 324. The alert can be presented onapplication 308 of the computing system 306. In response to receivingthe alert, the user can input a response on a user interface of thecomputing system 306.

In some instances, the action performed at 412 can include transmittinginstructions to a third-party application (e.g., third-party application330, 332, 334) to execute an operation associated with the transmittedinstructions. For example, application 304 (e.g., time and attendanceapplication) can transmit instructions to third-party application 330(e.g., payroll application) to increase the compensation of an employeeassociated with the first data object because it is determined that theemployee worked overtime during the current pay period.

In some instances, the action performed at 412 can include generating,using the machine-learned predictive model, a second trigger based onthe rule received at 402. The computing system 302 can perform an action(e.g., an action similar to the action performed at 412) at a time inthe future if the second trigger is activated. The second trigger beingassociated with a second set of conditions for activation of the secondtrigger. For example, a manager of a department may want to keep theoverall labor cost of the department below a certain threshold. Theapplication 304 can, using the predictive model, alert the manager priorto the threshold being exceeded, and can also alert the manager inreal-time when the threshold is exceeded. The time and attendanceapplication allows for tasks (e.g., alerts, approvals) to be automatedin real-time while users (e.g., employee, manager) are working.

In some instances, the action performed at 412 can include updatingorganizational data 311 in a system of record, performing one or moreoperations in a system of record based on organizational data 311,updating or causing the updating of organizational data 311 in one ormore applications external to a system of record (e.g., third-partyapplications) based on organizational data 311, and or performing orcausing the performing of one or more operations in one or moreapplications external to a system of record based on organizational data311.

At 408, a computer system determines whether the conditions of thetrigger are satisfied. In an embodiment, a computer system evaluates oneor more conditions in a set of one or more conditions associated with atrigger to determine a result indicating whether the set of conditionsassociated with the trigger is satisfied (e.g., evaluates to true,evaluates to a value, meets a certain threshold, exceeds a certainthreshold, etc.). For example, an application may evaluate conditionsassociated with a trigger in response to an event to determine whetherto activate or “fire” the trigger by executing operations associatedwith the trigger.

In an embodiment, an application evaluates conditions associated with atrigger, determines that the conditions of the trigger are satisfied,and causes activation of the trigger to execute operations configuredfor the trigger. In some examples, the application determines that atleast one of the conditions of a trigger are not satisfied. In oneexample, activation of a trigger does not occur when at least one of theconditions of a trigger are not satisfied. As such, the applicationwould not execute operations of the trigger because the trigger was notactivated.

At 410, a computer system executes one or more operations of the triggerin a custom computer language when the conditions of the trigger aresatisfied. In an embodiment, one or more operations are configured forexecution of a trigger based on activation of the trigger. For example,an application that evaluates conditions of a trigger and determinesthat the conditions of the trigger are satisfied then may executeoperations associated with the trigger based on activation or “firing”of the trigger. In various examples, operations associated with atrigger may be expressed in a custom computer language for processingorganizational data 311 where the custom computer language is supportedby the application.

In an embodiment, an application executes one or more operations of atrigger. For example, the application may be associated with anorganizational data management system that serves as a system of recordfor organizational data 311. Further, the operations of the trigger maybe expressed in or otherwise based on a custom computer languagesupported by the application. In some examples, the application performsone or more updates to organizational data 311 based on executing one ormore operations associated with the trigger. For example, theapplication may update one or more entities, attribute values, customfields, formulas, and/or any other information associated withorganizational data 311.

In an embodiment, the application performs one or more actions, forexample in view of organizational data 311, based on executing one ormore operations associated with the trigger. For example, such actionsmay include, but are not limited to, advancing progression of aworkflow, completing a workflow, assigning a task, updating status of atask, completing a task, initiating evaluation of another trigger,firing another trigger, approval of a request, denial of a request,generation of one or more alerts, transmission of one or more alerts,generation of one or more messages, transmission of one or moremessages, and/or performing any other types of actions associated withthe application.

In an embodiment, the application performs one or more actions involvingone or more other applications (e.g., third-party applications), forexample in view of organizational data 311, based on executing one ormore operations associated with the trigger. For example, theapplication may use integration data 314 to perform one or moreoperations that involve separate, third-party applications. Theapplication also can initiate one or more updates to organizational data311 stored, utilized, and/or otherwise associated with any one or moredifferent third-party applications. Further, in various examples, anapplication may perform any of the noted actions and/or any otheractions in any combination based on executing operations associated withthe trigger.

According to some embodiments, the computing system can have apredictive trigger, which allows for an action (e.g., alert) to beperformed prior to an event (e.g., employee working overtime in a payperiod) occurring. Additionally, the application can use amachine-learned reactionary predictive model to determine whether anevent in the future will occur. Moreover, the reactionary predictivemodel can be further trained based on the dependency map, the conditionsfor activating a trigger, the determination on whether an event in thefuture will occur based on the conditions, and whether the event in thefuture did occur. For example, the time and attendance application caninclude a predictive trigger. The predictive trigger can be associatedwith a timeline marker. The timeline marker for a predictive trigger canbe associated with a first condition, and a second condition at acertain time after the first condition has been met. The system cancreate a predictive alert in the future based on projecting the currentstatus forward. For example, if the current status continues (e.g.,employee keeps working) at a certain time in the future, then an actionis performed (alert is presented to a user). Alternatively, if thecurrent status does not continue (e.g., employee stops working) at acertain time in the future, then the action is canceled.

FIG. 5 depicts a flow diagram of an example method 500 for providingconfiguration of predictive triggers using a timeline marker, accordingto example embodiments of the present disclosure. One or more portionsof the method 500 can be executed and/or implemented on one or morecomputing devices or computing systems including, for example, thecomputing system 110, the remote computing system 130, the one or morecomputing devices 152, the computing device 200, the computing system302, the computing system 306, and/or the computing system 310. Inaddition, one or more portions of the method 500 can be executed orimplemented as an algorithm on the hardware devices or systems disclosedherein. FIG. 5 depicts steps performed in a particular order forpurposes of illustration and discussion. As such, those of ordinaryskill in the art, using the disclosures provided herein, will understandthat various steps of any of the methods disclosed herein can beadapted, modified, rearranged, omitted, and/or expanded withoutdeviating from the scope of the present disclosure.

In some instances, the computing system can include a predictivetrigger. The predictive trigger can be associated with a timelinemarker. The timeline marker for a predictive trigger can be associatedwith a first condition, and a second condition at a certain time afterthe first condition has been met. The system can create a predictivealert in the future based on projecting the current status forward. Forexample, if the current status continues (e.g., employee keeps working)at a certain time in the future, then an action is performed (alert ispresented to a user). Alternatively, if the current status does notcontinue (e.g., employee stops working) at a certain time in the future,then the action is canceled.

At 502, a computer system can perform an action associated with anactivation of a first trigger based on a determination that a conditionfor the activation of the first trigger has been satisfied. Thedetermination performed at 502 can be similar to the techniquesdescribed in the determination process at 410. The action performed at502 can be similar to the techniques described in the action performedat 412.

At 504, in response to the action performed at 502, the computing systemcan determine a new dependency between the rule received at 402 and asecond data object based on a dependency map and a condition foractivation of the second trigger. The condition for activation of thesecond trigger can be received with the rule at 402. For example, whenthe rule is received at 402, the rule can include a condition foractivation of the trigger and a condition for activation of a secondtrigger.

For example, the time and attendance application can use amachine-learned predictive model to determine whether an event in thefuture will occur. The predictive model can determine the condition forthe second trigger. Moreover, the predictive model can be furthertrained based on the dependency map, the conditions for activating atrigger, the determination on whether an event in the future will occurbased on the conditions, and whether the event in the future did occur.

At 506, the computing system can detect a change in the second dataobject at a certain time after the activation of the trigger. Thetechniques used to detect a change in the second data object at 506 canuse similar techniques as described in the change detected at 406.

At 508, the computing system can execute an operation associated withthe rule based on the detected change in the second data object. In oneembodiment, the rule received at 402 can include information associatedwith a second trigger and the condition for activation of the secondtrigger. When the rule received at 402 includes the condition foractivation of the second trigger, then the operation executed at 508 canfurther be based on the condition for activation of the second trigger.In some instances, the operation executed at 508 can be performed atleast in part on the organizational data associated with theorganization.

For example, the rule can be that airplane pilots cannot work a certainnumber of hours in a week. Therefore, the condition with this rule canbe to activate an alert when the pilot is expected to exceed a certainnumber of hours worked in a week. The custom rules can provide alerts inreal-time and can provide predictive alerts, which can be critical giventhe rules and regulations associated with a specific industry. Forexample, the condition for activation of the first trigger can bewhether the pilot worked longer than expected hours (e.g., first flightwas delayed). The condition for activation of the second trigger can bewhether the pilot is expected to fly again tomorrow in a second flight,which could result in the pilot exceeding a certain number of hours in aweek. In this example, the operation executed at 508 can include sendinga predictive alert prior to the second flight.

In another example, the time and attendance application can besynchronized with third-party applications (e.g., payroll) associatedwith the organizational management platform. For example, the conditionfor the first trigger can be satisfied when the employee has workedovertime based on the rules received from the user interface. Thecondition for the second trigger can be satisfied when approval isreceived from a manager to compensate the employee for the overtime.When the second trigger has been satisfied, the operation executed at508 can include automatically updating the number of hours worked in thethird-party application (e.g., payroll application) so that the employeeis automatically compensated for the overtime.

As an example, FIG. 6 depicts an illustration of an example userinterface 600 for configuring a rule and a trigger associated with therule, according to example embodiments of the present disclosure. Theexample user interface 600 generally allows a user to create a rule 610and to configure a trigger 620 associated with the rule. For example,the example user interface 600 allows a user to define a condition forthe trigger 620 and an action 630 to be performed when the trigger isactivated. In the example user interface 600, a user is creating a rule610 that will perform an action 630 (e.g., such as providing an alert)when the condition for activating the trigger 620 (e.g., an employee'sannual salary changes) is satisfied.

Such user interfaces generally may allow users to configure rules andtriggers based on any one or more of entity information (e.g., anemployee entity), attribute information (e.g., attributes of an employeeentity), one or more relationships between entities (e.g., employees mayhave one or more devices), associated entity information (e.g., a deviceassigned to an employee), associate entity attribute information (e.g.,a model of a device assigned to an employee, a version of softwarerunning on a device assigned to an employee, etc.), and operationsavailable from the system of record (e.g., ping a device assigned to anemployee, install a particular application on a device assigned to anemployee, install a patch for an operating system running on a deviceassigned to an employee, etc.) and/or based on any one or more of entityinformation, attribute information, and operations available from anyone or more third-party applications integrated with the system ofrecord.

As an example, FIG. 7 depicts an illustration of an example userinterface 700 for selecting a trigger object when configuring a triggerassociated with rule, according to example embodiments of the presentdisclosure. In example user interface 700, a search interface 702 isprovided to enable a user to search for one or more of available triggerobjects, available fields associated with trigger objects, availableevents associated with trigger objects, and/or any other type ofinformation available from a system of record for configuring triggers.In some examples, the search interface 702 may provide access topreconfigured trigger templates that a user may utilize, for example, asa starting point when configuring a trigger. Such trigger templatesand/or any other types of templates may be provided in addition to or asan alternative to the search interface 702. For example, triggertemplates may be provided via a navigable user interface that mayinclude an organized list of folders or other objects that enablemultiple different users to define, redefine, use, reuse, and/or performany other types of activities relating to trigger templates. Exampleuser interface 704 also includes a listing of trigger objects availablefor selection by a user. For example, a listing of trigger objects maybe generated based on any one or more types of entities utilized by asystem. In one example, a listing of trigger objects is generated basedon identifying one or more types of entities maintained by a system ofrecord. For example, one or more entities available for triggerconfiguration may be determined and presented based on analyzing one ormore data structures 315 associated with a system of record. Inaddition, information provided to a user may be based on any one or moreof organizational subscriptions with third-party applications,configured integrations with third-party applications, permissions of auser, custom entities configured for an organization, custom fieldsconfigured for an organization, etc.

As an example, FIG. 8A depicts an illustration of an example userinterface 800 for defining a condition for a trigger object whenconfiguring a trigger associated with a rule, according to exampleembodiments of the present disclosure. In example user interface 800, auser has started to define a trigger object based on an employee entityassociated with a rule for managing organizational data 311. In theexample user interface 800, the user is presented with an additionalinterface 802 that allows the user to select a category of attributesassociated with an entity (e.g., a category of compensation-relatedattributes of an employee entity associated with the system of record).The additional interface 802 also provides a listing of selectablefields associated with the current category of attributes in theadditional interface 802 (e.g., the listing of specific employee entityattributes in the compensation category). In various examples, one ormore categories and/or attributes related to an entity may be determinedbased on analyzing one or more data structures 315 associated with asystem of record.

FIG. 8B depicts an illustration of an example user interface 810 fordefining a condition for a trigger object when configuring a triggerassociated with a rule, according to example embodiments of the presentdisclosure. Continuing with the example above from FIG. 8A above,example user interface shows a user selection of the annual compensationattribute 812 of the employee entity. In addition, the user is providedwith an additional user interface 814 that enables the user to configurea condition based on annual compensation of the employee entity. Theuser then may adjust any one or more of the various options presented bythe additional user interface 814 and add the desired condition to thetrigger. Further, the user may continue one or more additionalconditions associated with the employee entity, one or more entitiesassociated with the employee entity (e.g., devices, applications, etc.),one or more third-party applications, and/or any other entitiessupported by a system of record. Once the user has finished addingconditions for the trigger, then the user can configure one or moreoperations for the trigger.

FIG. 9 depicts an illustration of an example user interface 900 for atime and attendance application, according to example embodiments of thepresent disclosure. In an example, a user can define a condition basedon time and attendance data, such as regular hours worked 902, overtimehours worked 904, double overtime hours worked 906, manager approval908, pay schedule period 910, paid time off 912, and accrued holiday914, and so on. The time and attendance data can be real-time data thatcan allow for the system to provide real-time alerts. an association orrelationship between two or more entities. As one example, a conditionfor a trigger associated with a rule may be based on the time andattendance data of an employee.

Numerous details are set forth in the foregoing description. However, itwill be apparent to one of ordinary skills in the art having the benefitof this disclosure that the present disclosure may be practiced withoutthese specific details. In some instances, structures and devices areshown in block diagram form, rather than in detail, to avoid obscuringthe present disclosure.

Some portions of the detailed description have been presented in termsof processes and symbolic representations of operations on data bitswithin a computer memory. Here, a process can include a self-consistentsequence of steps leading to a result. The steps can include thoserequiring physical manipulations of physical quantities. Thesequantities can take the form of electrical or magnetic signals capableof being stored, transferred, combined, compared, and otherwisemanipulated. These signals can be referred to as bits, values, elements,symbols, characters, terms, numbers, or the like.

These terms and similar terms can be associated with physical quantitiesand can represent labels applied to these quantities. The termsincluding “obtaining,” “parsing,” “analyzing,” “accessing,”“determining,” “identifying,” “adjusting,” “modifying,” “transmitting,”“receiving,” “processing” “generating,” or the like, can refer to theactions and processes of a computer system, a computing device, orsimilar electronic computing device, that manipulates and transformsdata represented as physical (e.g., electronic) quantities within thecomputer system's registers and memories into other data that can besimilarly represented as physical quantities within the computersystem's memories, registers, or other information storage device, datatransmission device, or data processing device.

Certain examples of the present disclosure can relate to an apparatusfor performing the operations described herein. This apparatus mayinclude a computing device that is activated or reconfigured by acomputer program comprising electronic instructions stored in thecomputing device. Such a computer program may be stored in a computerreadable storage medium, which can include any type of storage. Forexample, the storage can include hard disk drives, solid state drives,floppy disks, optical disks, CD-ROMs, and magnetic-optical disks,read-only memories (ROMs), random access memories (RAMs), EPROMs,EEPROMs, magnetic or optical cards, or any type of media suitable forstoring electronic instructions.

The above description is intended to be illustrative, and notrestrictive. The scope of the disclosure can therefore be determinedwith reference to the claims.

The technology discussed herein makes reference to servers, databases,software applications, and other computer-based systems, as well asactions taken, and information sent to and from such systems. Theinherent flexibility of computer-based systems allows for a greatvariety of possible configurations, combinations, and divisions of tasksand functionality between and among components. For instance, processesdiscussed herein can be implemented using a single device or componentor multiple devices or components working in combination. Databases andapplications can be implemented on a single system or distributed acrossmultiple systems. Distributed components can operate sequentially or inparallel.

While the present subject matter has been described in detail withrespect to various specific example embodiments thereof, each example isprovided by way of explanation, not limitation of the disclosure. Thoseskilled in the art, upon attaining an understanding of the foregoing,can readily produce alterations to, variations of, and equivalents tosuch embodiments. Accordingly, the subject disclosure does not precludeinclusion of such modifications, variations and/or additions to thepresent subject matter as would be readily apparent to one of ordinaryskill in the art. For instance, features illustrated or described aspart of one embodiment can be used with another embodiment to yield astill further embodiment. Thus, it is intended that the presentdisclosure covers such alterations, variations, and equivalents.

1.-20. (canceled)
 21. A computer system that implements anorganizational management platform to manage applications for anorganization, the computer system comprising: one or more processors;one or more databases that collectively store organizational dataassociated with the organization, wherein the organizational datacomprises an object graph data structure comprising a plurality of dataobjects associated with the organizational data, and wherein theorganizational data includes employee records having a plurality ofattributes; and one or more non-transitory computer-readable media thatcollectively store instructions that, when executed by the one or moreprocessors, cause the computer system to perform operations, theoperations comprising: receiving a rule, the rule having a condition foractivation of a first trigger, and wherein the rule is associated withan attribute from the plurality of attributes of the employee records;determining, based on a dependency map, a dependency between the ruleand a first data object from the plurality of data objects; determiningthat the condition for the activation of the first trigger is satisfiedbased on a detected change in the first data object; and performing anaction associated with the activation of the first trigger based on thedetermination that the condition for the activation of the first triggerhas been satisfied.
 22. The computer system of claim 21, wherein therule includes a condition for activation of a second trigger, the actionassociated with the activation of the first trigger is to determine anew dependency between the rule and a second data object based thedependency map and the condition for activation of the second trigger,and wherein the operations further comprising: detecting a change in thesecond data object at a certain time after the activation of the firsttrigger; and executing an operation associated with the rule based onthe detected change in the second data object and the condition foractivation of the second trigger.
 23. The computer system of claim 21,wherein the applications for the organization managed by theorganizational management platform includes a time and attendanceapplication, and wherein the rule is received from a user interface ofthe time and attendance application.
 24. The computer system of claim23, wherein the user interface allows a user to configure the conditionfor activation of the first trigger based at least in part on apredictive model trained by data associated with the time and attendanceapplication.
 25. The computer system of claim 21, the operations furthercomprising: presenting on a user interface a plurality of rules and aplurality of triggers, wherein the received rule is being selected fromthe plurality of rules, and wherein the first trigger associated withthe received rule is selected from the plurality of triggers.
 26. Thecomputer system of claim 25, wherein the organizational data includesemployee records having a plurality of attributes, and wherein theplurality of rules are associated with the plurality of attributes ofthe employee records.
 27. The computer system of claim 25, theoperations further comprising: receiving a threshold value associatedwith the received rule; and wherein the determining that the conditionfor activation of the first trigger is further based on the receivedthreshold value.
 28. The computer system of claim 21, wherein the ruleis associated with a rule data object, the operations furthercomprising: analyzing the rule in view of information describing one ormore relationships between each of the plurality of the data objectsassociated with the organizational data; and wherein the one or moredata objects from the plurality of the data objects that are associatedwith the rule have a relationship with the rule data object.
 29. Thecomputer system of claim 21, wherein the object graph data structurefurther comprises a plurality of rule data objects that correspond to aplurality of rules, and wherein the received rule is selected from theplurality of rules.
 30. The computer system of claim 21, wherein theobject graph data structure further comprising a plurality of attendancedata objects that correspond to attendance data for a plurality ofemployees of the organization.
 31. The computer system of claim 30,wherein the plurality of attendance data objects include the first dataobject, the operations further comprising: retrieving, from anattendance database at regular occurring intervals, attendance dataassociated with the plurality of attendance data objects, the attendancedata having an attendance value for the first data object; and whereinthe change in the first data object is detected when the attendancevalue for the first data object has crossed a threshold value.
 32. Thecomputer system of claim 21, wherein the action performed with theactivation of the first trigger comprises executing an operationassociated with a third-party application based at least in part on theorganizational data, and wherein the third-party application utilizes atleast some of the organizational data.
 33. The computer system of claim21, the operations further comprising: obtaining regulations associatedwith a specific industry from a third-party application; updating thedependency map associated with the rule based on the obtainedregulations; and updating the condition for activation of the firsttrigger based on the obtained regulations.
 34. The computer system ofclaim 21, the operations further comprising: generating the dependencymap associated with the rule, the dependency map having one or more dataobjects from the plurality of the data objects that are associated withthe rule.
 35. A computer-implemented method for implementing anorganization management platform to manage applications for anorganization, the method comprising: accessing, by one or more computingdevices, organizational data associated with the organization, whereinthe organizational data comprises an object graph data structurecomprising a plurality of data objects associated with theorganizational data, and wherein the organizational data includesemployee records having a plurality of attributes; receiving a rule, therule having a condition for activation of a first trigger, and whereinthe rule is associated with an attribute from the plurality ofattributes of the employee records; determining, based on a dependencymap, a dependency between the rule and a first data object from theplurality of data objects; determining that the condition for theactivation of the first trigger is satisfied based on a detected changein the first data object; and performing an action associated with theactivation of the first trigger based on the determination that thecondition for the activation of the first trigger has been satisfied.36. The computer-implemented method of claim 35, wherein the ruleincludes a condition for activation of second trigger, the actionassociated with the activation of the first trigger is to determine anew dependency between the rule and a second data object based thedependency map and the condition for activation of the second trigger,and the method further comprising: detecting, by the one or morecomputing devices, a change in the second data object at a certain timeafter the activation of the first trigger; and executing, by the one ormore computing devices, an operation associated with the rule based onthe detected change in the second data object and the condition foractivation of the second trigger.
 37. The computer-implemented method ofclaim 35, further comprising: presenting on a user interface, by the oneor more computing devices, a plurality of rules and a plurality oftriggers, wherein the received rule is being selected from the pluralityof rules, and wherein the first trigger associated with the receivedrule is selected from the plurality of triggers.
 38. Thecomputer-implemented method of claim 35, wherein the rule is associatedwith a rule data object, further comprising: analyzing, by the one ormore computing devices, the rule in view of information describing oneor more relationships between each of the plurality of the data objectsassociated with the organizational data; and wherein the one or moredata objects from the plurality of the data objects that are associatedwith the rule have a relationship with the rule data object.
 39. Thecomputer-implemented method of claim 35, wherein the object graph datastructure further comprising a plurality of attendance data objects thatcorrespond to attendance data for a plurality of employees of theorganization, and wherein the plurality of attendance data objectsinclude the first data object, the method further comprising:retrieving, by the one or more computing devices, from an attendancedatabase at regular occurring intervals, attendance data associated withthe plurality of attendance data objects, the attendance data having anattendance value for the first data object; and wherein the change inthe first data object is detected when the attendance value for thefirst data object has crossed a threshold value.
 40. One or morenon-transitory computer-readable media that collectively storeinstructions that, when executed by one or more computing devices, causethe one or more computing devices to perform operations, the operationscomprising: accessing organizational data associated with theorganization, wherein the organizational data comprises an object graphdata structure comprising a plurality of data objects associated withthe organizational data, and wherein the organizational data includesemployee records having a plurality of attributes; receiving a rule, therule having a condition for activation of a first trigger, and whereinthe rule is associated with an attribute from the plurality ofattributes of the employee records; determining, based on a dependencymap, a dependency between the rule and a first data object from theplurality of data objects; determining that the condition for theactivation of the first trigger is satisfied based on a detected changein the first data object; and performing an action associated with theactivation of the first trigger based on the determination that thecondition for the activation of the first trigger has been satisfied.